Siirry suoraan sisältöön
Miili Consulting taustagrafiikka

Event Sourcing – Java-kehittäjän unelma

Mitä jos voisit uutta ohjel­mistoa suunni­tel­taessa ja kooda­tessa tallentaa kaikki domai­nissa tapah­tu­neet muutokset aikasar­jana ja palata niihin jälkeen­päin tarpeen tullen? Event Sourcing ‑menetel­mällä se onnistuu! Tässä artik­ke­lissa käymme läpi menetelmän perusteet ja esitte­lemme muutaman helppo­käyt­töisen työkalun sen tueksi.

Perinteisesti ohjel­mis­toja on totuttu suunnit­te­le­maan siten, että kirjoi­te­taan vaati­mus­mää­rit­tely, ja sen pohjalta ohjel­mis­to­suun­nit­te­lijat suunnit­te­levat datamallin ja ohjel­miston. Haasteena tässä tavassa on yksin­ker­tai­sesti se, että järjes­telmä tallentaa vain sen hetkisen tilan, eikä esimer­kiksi muiden järjes­tel­mien dataa voida käyttää raken­ta­misen pohjana, eikä ole mahdol­lista tietää, miten nykyiseen tilaan on päädytty.  Event Sourcing tarjoaa tehokkaan täsmä­lääk­keen tähän haasteeseen.

Miten Event Sourcing ‑menetelmä toimii ja miksi se on erityisen hyvä Java-kehittäjille?

Event Sourcing ‑menetel­mässä tallen­ne­taan kaikki domai­nissa tapah­tu­neet tapah­tumat aikasarjan muodossa. Se mahdol­listaa monia asioita. Ajatellaan esimer­kiksi tilan­netta, jossa halutaan synnyttää liike­toi­minnan datasta uusi palvelu. Koska Event Sourcing ‑palve­li­mella on kaikki liike­toi­minnan kannalta oleel­liset tapah­tumat tallen­nettu, on uuden palvelun datan alusta­minen helppoa. Kaikki aiemmat tapah­tumat voidaan syöttää Event Sourcing ‑palve­li­melta uuteen raken­teilla olevaan palveluun.

Toinen Event Sourcingin etu on kiistä­mät­tö­myyden tarkas­telun helpot­tu­minen (audit trail). Event Sourcing ‑palvelun tallen­taessa kaikki domai­nissa tehtävät muutokset aikasar­jassa, on myös matkalla tapah­tu­neet virheet helpompi kartoittaa ja korjata. Lisäksi meidän on helppoa saada selville kuka teki ja mitä.

Menetelmän käyttöön­oton tueksi löytyy erilaisia työkaluja, joista useat ovat Java-pohjaisia ja sovel­tuvat näin ollen erityisen hyvin Java-kehittäjien tarpei­siin. Event Sourcing sopii hyvin yhteen myös Domain-Driven Design- menetelmän kanssa (DDD). Kyseisen menetelmän tarkoitus on saada liike­toi­min­nasta ja ohjel­mis­to­ke­hi­tyk­sestä vastaavat henkilöt puhumaan samaa kieltä ja mahdol­listaa sitä kautta liike­toi­mintaa paremmin palve­le­vien ohjel­mis­tojen kehitys. Lue lisää Domain-Driven Design ‑menetel­mästä.

Vaikka Event Sourcing onkin erityi­sesti Java-kehittäjien keskuu­dessa suosiota niittänyt menetelmä, soveltuu se hyvin myös muiden ohjel­mis­to­kielten kanssa käytettäväksi. 

Millaisilla työka­luilla liikkeelle Event Sourcingissa?

Yksi markki­noiden johta­vista ja Miililläkin hyväk­si­to­de­tuista työka­luista Event Sourcingiin on AxonIQ Framework. Se on java-pohjainen ohjel­mis­to­kir­jasto, jonka avulla Event Sourcing ‑arkki­teh­tuurin toteut­ta­minen on helppoa ja säästää käyttä­jänsä monelta aikaa­vie­vältä vaiheelta. Kyseisen ohjel­ma­kir­jaston avulla on mahdol­lista nopeuttaa järjes­telmän kehitystä huomat­ta­vasti. AxonIQ Framework:ia voit käyttää sekä mikro­pal­ve­luark­ki­teh­tuu­rissa että perin­tei­sim­missä monoliit­ti­seen arkki­teh­tuu­riin perus­tu­vissa järjestelmissä.

Axon Server on puoles­taan niin kutsuttu Event store, johon Event Sourcingissa syntyvät tapah­tumat tallen­ne­taan. Tämä tulee valmiina AxonIQ Frameworkin rinnalla säästäen käyttä­jänsä myös sen luomiseen käytet­tä­vältä ajalta ja haasteilta. Axon Server tarjoaa myös event sourcing menetel­mässä oleel­li­sesti käytet­tä­vien viestien reitit­tä­misen eri palve­luiden välillä ilman konfi­gu­rointia. Axon Server mahdol­listaa myös järjes­telmän skaalaa­misen ja kasvat­ta­misen kette­rästi ajan saatossa.

Haluatko oppia lisää Event Sourcingista aiheena tai siihen liitty­vistä työkaluista?

Miili Consulting ja hollan­ti­lais­yritys AxonIQ tekevät yhteis­työtä Suomessa auttaak­seen ohjel­mis­to­ke­hi­tyksen ammat­ti­laisia käyttä­mään DDD, CQRS ja Event Sourcing ‑menetelmiä ohjel­mis­toark­ki­teh­tuuri- ja ohjel­mis­to­ke­hi­tys­työssä. Autamme myös mielel­lämme sinua tai yritys­täsi pääsemään sujuvasti alkuun näiden menetel­mien kanssa. Ota meihin siis rohkeasti yhteyttä ja jutellaan lisää aiheen tiimoilta!