Ein Giro-Konto speichert nicht einfach nur einen Kontostand. Es führt Buch über jede einzelne Bewegung – Einzahlung, Abhebung, Überweisung. Genau dieses Prinzip beschreibt Golo Roden, Gründer und CTO der native web GmbH, um zu erklären, worum es bei Event Sourcing eigentlich geht. Im Interview auf der DWX räumt er mit einem hartnäckigen Vorurteil auf: Event Sourcing und CQRS seien aufwendiger als klassische Entwicklung. "Das wirkt nur so, weil es ungewohnt ist", sagt Roden. Wer die Konzepte genauso lange übt wie klassische Architekturansätze, komme zum gegenteiligen Schluss.
Dass CQRS und Event Sourcing seit rund 20 Jahren existieren, aber noch immer nicht breit angekommen sind, führt Roden auf die Ausbildung zurück. An Hochschulen werde Softwareentwicklung fast ausschließlich datenzentriert gedacht – als Manipulation von Datensätzen. Dabei gehe es eigentlich darum, Geschäftsprozesse digital abzubilden. Diese Denkweise fühle sich für viele Entwicklerinnen und Entwickler an wie der erste Sushi-Besuch nach einem Leben voller Burger: nicht schlechter, nicht besser, einfach nur fremd.
Vorteile bei KI und Data-Science
Für KI- und Data-Science-Vorhaben hält Roden das CQRS-Prinzip – getrennte Modelle fürs Schreiben und Lesen von Daten – für besonders wertvoll. Während klassische Architekturen ein starres Datenmodell für alles vorsehen, lassen sich aus einem Event-Log beliebig viele Lesemodelle ableiten: für Feature-Extraktion, für Normalisierung, für unterschiedliche Trainingsdaten. "Das macht dir das Leben sehr viel einfacher, als wenn du mit einem festen Datenset zurechtkommen musst", so Roden.
Am Beispiel eines Online-Shops macht er das greifbar: Wer verfolgt, dass ein Artikel in den Warenkorb gelegt, dann wieder entfernt und stattdessen ein anderer gewählt wurde, erkennt Muster, die ein reiner Endzustand nie zeigen würde. Genau diese Feinkörnigkeit sei der Rohstoff für Data Scientists – und der Grund, warum Event Sourcing als Fundament für das Data-Mesh-Konzept dient. Anders als beim gescheiterten zentralen Data Warehouse oder dem oft zum "Datensumpf" verkommenen Data Lake verteilt Data Mesh die Verantwortung für Daten auf die Teams, die sie erzeugen. Diese liefern ihre Daten als klar definierte "Data Products" – und genau dafür brauche es die Flexibilität, die CQRS bietet.
Ob ein Unternehmen aus seinen Daten tatsächlich einen strategischen Vorteil zieht, zeige sich schon sehr früh, warnt Roden – nämlich daran, wie die Events benannt sind. Viele Firmen setzten zwar formal auf Event Sourcing, blieben inhaltlich aber in alter CRUD-Logik hängen: "User created", "Article updated", "Article deleted". Das sei, so Roden, wie ein Team, das jede agile Checkliste abhakt und trotzdem das unagilste Team überhaupt ist. Sein Rat: Events sollten fachlich reichhaltig sein. Nicht "Address changed", sondern "Umzug" – denn niemand erzählt abends von der Konferenz mit den Worten "Ticket created, Position updated, Gespräch created, Gespräch deleted". Wer Event Sourcing wirklich verstanden hat, erzählt Geschichten. Keine Datensätze.
Golo Roden ist Gründer und CTO der native web GmbH. Er beschäftigt sich mit dem Design und der Entwicklung von Web- und Cloud-Anwendungen sowie APIs, mit besonderem Schwerpunkt auf event-getriebenen und service-basierten verteilten Architekturen. Sein Leitgedanke: Softwareentwicklung ist nie Selbstzweck – sie muss der zugrunde liegenden Business-Domäne folgen und sie widerspiegeln.
Produktion: Event Wave, Patrizio De Mitri
Moderation: Florian Lenz
Redaktion: Developer World