Event sourcing is een manier om data op te slaan waarbij je de volledige lijst met wijzigingen bewaart in plaats van alleen het eindresultaat. Elke belangrijke gebeurtenis wordt op volgorde opgeslagen als event. De stand die je op een bepaald moment ziet, wordt herbouwd door die events vanaf het begin opnieuw af te spelen.

Een bankrekening is het klassieke voorbeeld. De bank slaat je saldo niet op als één getal. Hij bewaart elke storting en opname, en je saldo is simpelweg de som daarvan. Klopt er ooit iets niet, dan staat de hele historie klaar om na te kijken. Datzelfde idee, nooit overschrijven maar alleen toevoegen, is de kern van event sourcing en het past logisch bij een event-driven architectuur.

Omdat er nooit iets wordt verwijderd of overschreven, krijg je een nauwkeurig audittrail en kun je vragen hoe zag dit er afgelopen dinsdag uit. Je herstelt een fout uit het verleden zelfs door een corrigerend event toe te voegen in plaats van stilletjes het record aan te passen, wat het verhaal eerlijk houdt. Het werkt goed samen met patronen als het saga-patroon om langlopende processen over meerdere services te coördineren, en het past prima in een systeem opgebouwd uit microservices. De keerzijde is meer bewegende delen en meer opslag, dus het loont vooral als historie en controleerbaarheid echt belangrijk zijn.

Bij TopDevs kiezen we voor event sourcing als een klant een controleerbaar spoor van elke wijziging nodig heeft, zoals bij financiën, logistiek of processen met strenge regelgeving, en houden we het buiten projecten waar een simpele database hetzelfde werk met minder overhead doet.