Event Sourcing – Java-kehittäjän unelma
Mitä jos voisit uutta ohjelmistoa suunniteltaessa ja koodatessa tallentaa kaikki domainissa tapahtuneet muutokset aikasarjana ja palata niihin jälkeenpäin tarpeen tullen? Event Sourcing ‑menetelmällä se onnistuu! Tässä artikkelissa käymme läpi menetelmän perusteet ja esittelemme muutaman helppokäyttöisen työkalun sen tueksi.
Perinteisesti ohjelmistoja on totuttu suunnittelemaan siten, että kirjoitetaan vaatimusmäärittely, ja sen pohjalta ohjelmistosuunnittelijat suunnittelevat datamallin ja ohjelmiston. Haasteena tässä tavassa on yksinkertaisesti se, että järjestelmä tallentaa vain sen hetkisen tilan, eikä esimerkiksi muiden järjestelmien dataa voida käyttää rakentamisen pohjana, eikä ole mahdollista tietää, miten nykyiseen tilaan on päädytty. Event Sourcing tarjoaa tehokkaan täsmälääkkeen tähän haasteeseen.
Miten Event Sourcing ‑menetelmä toimii ja miksi se on erityisen hyvä Java-kehittäjille?
Event Sourcing ‑menetelmässä tallennetaan kaikki domainissa tapahtuneet tapahtumat aikasarjan muodossa. Se mahdollistaa monia asioita. Ajatellaan esimerkiksi tilannetta, jossa halutaan synnyttää liiketoiminnan datasta uusi palvelu. Koska Event Sourcing ‑palvelimella on kaikki liiketoiminnan kannalta oleelliset tapahtumat tallennettu, on uuden palvelun datan alustaminen helppoa. Kaikki aiemmat tapahtumat voidaan syöttää Event Sourcing ‑palvelimelta uuteen rakenteilla olevaan palveluun.
Toinen Event Sourcingin etu on kiistämättömyyden tarkastelun helpottuminen (audit trail). Event Sourcing ‑palvelun tallentaessa kaikki domainissa tehtävät muutokset aikasarjassa, on myös matkalla tapahtuneet virheet helpompi kartoittaa ja korjata. Lisäksi meidän on helppoa saada selville kuka teki ja mitä.
Menetelmän käyttöönoton tueksi löytyy erilaisia työkaluja, joista useat ovat Java-pohjaisia ja soveltuvat näin ollen erityisen hyvin Java-kehittäjien tarpeisiin. Event Sourcing sopii hyvin yhteen myös Domain-Driven Design- menetelmän kanssa (DDD). Kyseisen menetelmän tarkoitus on saada liiketoiminnasta ja ohjelmistokehityksestä vastaavat henkilöt puhumaan samaa kieltä ja mahdollistaa sitä kautta liiketoimintaa paremmin palvelevien ohjelmistojen kehitys. Lue lisää Domain-Driven Design ‑menetelmästä.
Vaikka Event Sourcing onkin erityisesti Java-kehittäjien keskuudessa suosiota niittänyt menetelmä, soveltuu se hyvin myös muiden ohjelmistokielten kanssa käytettäväksi.
Millaisilla työkaluilla liikkeelle Event Sourcingissa?
Yksi markkinoiden johtavista ja Miililläkin hyväksitodetuista työkaluista Event Sourcingiin on AxonIQ Framework. Se on java-pohjainen ohjelmistokirjasto, jonka avulla Event Sourcing ‑arkkitehtuurin toteuttaminen on helppoa ja säästää käyttäjänsä monelta aikaavievältä vaiheelta. Kyseisen ohjelmakirjaston avulla on mahdollista nopeuttaa järjestelmän kehitystä huomattavasti. AxonIQ Framework:ia voit käyttää sekä mikropalveluarkkitehtuurissa että perinteisimmissä monoliittiseen arkkitehtuuriin perustuvissa järjestelmissä.
Axon Server on puolestaan niin kutsuttu Event store, johon Event Sourcingissa syntyvät tapahtumat tallennetaan. Tämä tulee valmiina AxonIQ Frameworkin rinnalla säästäen käyttäjänsä myös sen luomiseen käytettävältä ajalta ja haasteilta. Axon Server tarjoaa myös event sourcing menetelmässä oleellisesti käytettävien viestien reitittämisen eri palveluiden välillä ilman konfigurointia. Axon Server mahdollistaa myös järjestelmän skaalaamisen ja kasvattamisen ketterästi ajan saatossa.
Haluatko oppia lisää Event Sourcingista aiheena tai siihen liittyvistä työkaluista?
Miili Consulting ja hollantilaisyritys AxonIQ tekevät yhteistyötä Suomessa auttaakseen ohjelmistokehityksen ammattilaisia käyttämään DDD, CQRS ja Event Sourcing ‑menetelmiä ohjelmistoarkkitehtuuri- ja ohjelmistokehitystyössä. Autamme myös mielellämme sinua tai yritystäsi pääsemään sujuvasti alkuun näiden menetelmien kanssa. Ota meihin siis rohkeasti yhteyttä ja jutellaan lisää aiheen tiimoilta!