Events sind Immutable, Anforderungen nicht
Abstract
Thu 14:30 - 15:15 Uhr | 2026
Event Sourcing verspricht lückenlose Nachvollziehbarkeit, flexible Auswertungen und ein Domänenmodell, das festhält, was wirklich passiert ist. Doch wenn sich Anforderungen ändern, kann die Unveränderlichkeit der Events zu einer Herausforderung werden. Was einmal als Event geschrieben wurde, bleibt für immer auf diese Weise im Event Store persistiert. Wenn sich das Datenmodell ändert, aber tausende Events im alten Format im Store liegen, scheitert das Wiederherstellen des aktuellen Zustands sofort.
In diesem Talk zeigen wir anhand eines durchgängigen Beispiels, wie man Event-Sourced Systems weiterentwickelt, ohne die Vergangenheit zu manipulieren. Wir beginnen mit Event Upcasting — einer Technik, die alte Events nur beim Lesen in das aktuelle Schema transformiert. Solange die nötige Information im Event steckt oder das Fehlen von Informationen kompensiert werden kann, löst ein Upcaster das Problem elegant.
Doch was passiert, wenn die Information lokal nicht existiert? Wenn ein neues Pflichtfeld weder berechnet noch kompensiert werden kann, stößt Upcasting an seine Grenzen. Wir zeigen daher zusätzlich das Konzept von Lazy Enrichment auf, um fehlende Daten nachzuliefern. Manche Frameworks liefern hierfür Interceptors mit, aber auch mit dem Gateway-Pattern lässt sich diese Funktionalität umsetzen.
Am Ende stehen mehrere Strategien für die Schema-Evolution: Berechnen, kompensieren, nachliefern — und ein klares Bild davon, wann welche zum Einsatz kommt.
Benedikt Jerat ist als Senior Consultant für Digital Frontiers tätig. Seine Schwerpunkte liegen auf der Softwareentwicklung im Scala-, Java-, Kotlin- und Spring-Umfeld mit Fokus auf der funktionalen Programmierung.

Kersten Kriegbaum
Erfahrener Software Engineer und Berater mit Spezialisierung auf die Entwicklung komplexer Backend-Systeme. Meine Expertise liegt in Technologien wie Kotlin, Axon, Spring, Event Sourcing und CQRS. Mit einem Hintergrund, der sowohl die Backend- als auch die Frontend-Entwicklung (u.a. mit React.js) umfasst, konzipiere und realisiere ich robuste Softwarelösungen für anspruchsvolle Branchen wie die Energiewirtschaft und Finanzmärkte. Ich schätze den offenen Wissensaustausch und arbeite am liebsten in flexiblen, kollaborativen Umgebungen, um innovative Produkte zu schaffen.
