Lähteet päivittyvät eri tahtiin
Yksittäisen rajapinnan haku ei ole tässä vaikea osa. Vaikeaa on, että lähteet päivittyvät eri tahtiin ja niiden aikaleima tarkoittaa eri asioita, joko tapahtumahetkeä (event-time) tai käsittelyhetkeä (processing-time). Ennuste on vain yhtä tuore kuin sen vanhin syöte.
Kulutusmittaukset
Sääennuste
Pörssisähkön hinta
Lasketut ennusteet
Jokainen ennuste on oma datatuotteensa. Sillä on omat syötteensä ja omat ehtonsa sille, milloin se lasketaan uudelleen.
Eräajo ei pysy mukana
Kun syötteet saapuvat eri tahtiin, kiinteä eräajo joko viivästyttää tuoretta dataa tai laskee ennusteen turhaan uudelleen, vaikka syöte ei ole muuttunut.
- Uuden sääennusteen pitäisi näkyä kulutus- ja hintaennusteessa sekunneissa eikä vasta tuntien päästä.
- Kun mittausdata tulee myöhässä, ennuste lasketaan uudelleen sille ajanjaksolle, jolta mittaus on (event-time).
- Syötteiden riippuvuuksia pitää hallita, jotta päivitys laskee uudelleen vain ne ennusteet, joihin se vaikuttaa.
Putki lähteestä ennusteen jakeluun
Tapahtumaväylä erottaa tietolähteet ja datan käyttäjät toisistaan. Päivitykset kulkevat virtana, ja ennusteet lasketaan uudelleen, kun syöte muuttuu.
Näin ennusteet päivittyvät syötteiden mukana
Vasemmalla näkyvät syötteet ja se, kuinka tuoreita ne ovat. Kun syöte päivittyy, siitä riippuvat ennusteet lasketaan oikealla uudelleen. Versionumero kasvaa ja kortti välähtää. Voit myös syöttää päivityksen käsin tai simuloida datakatkon.
Mitä tapahtumapohjaisuus vaatii käytännössä
Tapahtumapohjainen uudelleenlaskenta
Laskennan käynnistää uusi syöte eikä kellonaika. Riippuvuusgraafi määrää, mitkä ennusteet lasketaan uudelleen ja missä järjestyksessä.
Tuoreuden valvonta
Jokaiselle syötteelle on sovittu enimmäisikä (tuoreus-SLA). Kun raja ylittyy, syntyy hälytys. Ennuste merkitään vanhentuneen syötteen varassa olevaksi kaikissa sitä käyttävissä järjestelmissä.
Myöhässä ja väärässä järjestyksessä saapuva data
Jälkikäteen saapuva mittaus kohdistetaan sen tapahtumahetkeen (event-time), ja watermarkit rajaavat, kuinka kauan myöhästyvää dataa odotetaan. Korjausajo kohdistuu siihen ajanjaksoon, jolta mittaus on, eikä saapumishetkeen.
Turvallinen toisto ja versiointi
Saman tapahtuman voi käsitellä uudelleen ilman, että tulos muuttuu (idempotenssi). Jokaisella ennusteella on aikaleima ja versio, joten sitä käyttävä järjestelmä tietää aina, mihin syötteisiin tulos perustuu.
Löyhästi kytketty arkkitehtuuri
Tapahtumaväylän ansiosta järjestelmien välillä ei ole suoria point-to-point-kytkentöjä. Uuden lähteen tai datan käyttäjän voi liittää muuttamatta olemassa olevia integraatioita.
Takaisinlataus ja toistettavuus
Historian voi toistaa virrasta (replay). Näin mallit voidaan ajaa uudelleen ja korjaukset tehdä ilman erillistä eräpoimintaputkea.
Lopputulos
Kun kaikki lähteet kulkevat saman väylän kautta ja ennusteet lasketaan tapahtumien pohjalta, järjestelmän tila pysyy yhtenäisenä. Jokainen ennuste perustuu tuoreimpaan saatavilla olevaan syötteeseen, ja sen lähtötiedot voi jäljittää version ja aikaleiman avulla. Lähes reaaliaikainen integraatio ei ole nopeutettu eräajo. Siinä muuttunut data työnnetään eteenpäin sitä mukaa kuin se syntyy, eikä sitä haeta aikataulun mukaan.