Event-driven Architecture & CQRS/ES
CQRS ist hilfreich, weil es den Lese- und Schreibzugriff entkoppelt. So entsteht ein System, das leichter zu verstehen, zu testen und strategisch zu skalieren ist. Zusammen mit Event Sourcing ermöglicht dies zudem ein lückenloses Audit-Log und die Rekonstruktion sowie Analyse des Zustands zu jedem beliebigen Zeitpunkt (time travelling debugger). Es ist nicht schwer, CQRS und Event Sourcing richtig umzusetzen; es ist nur erstmal ungewohnt. Mit unserer Erfahrung in der Entwicklung von CQRS/ES-Systemen haben wir unser eigenes, opinionated und quelloffenes Framework namens “OpenCQRS” erstellt. Es bietet einen einfachen Einstieg und ermöglicht es, schnell fachliche Anforderungen umzusetzen, ohne sich um die technischen Details einer CQRS/ES-Anwendung kümmern zu müssen.
Wenn Komplexität die Fachlichkeit überlagert
Über die Lebensdauer eines Softwaresystems hinweg besteht unabhängig davon, wie gut ein Team arbeitet, die Gefahr, dass die technische Komplexität zunimmt und die fachlichen Anforderungen darunter begraben werden. Jede neue Anforderung, jede Integration und jede pragmatische Entscheidung unter Zeitdruck verstärkt diesen Effekt.
Mit der Zeit führt das dazu, dass:
- Services enger gekoppelt sind als geplant
- Änderungen an einer Stelle unerwartete Auswirkungen an anderer Stelle haben
- Fachliche Logik im Code immer schwerer erkennbar ist
Der Zusammenhang zwischen Fachlichkeit und Systemverhalten geht verloren. Wissen konzentriert sich auf wenige Personen, neue Entwickler brauchen lange, um produktiv zu werden, und fachliche Änderungen ziehen sich über mehrere Teams hinweg.
Das Problem ist nicht schlechte Entwicklung, sondern fehlende architektonische Antworten auf diese natürliche Erosion.
Vom Event Storming zur produktiven Architektur
Wir begleiten Teams bei der praktischen Umsetzung von Event-driven Architecture mit CQRS und Event Sourcing direkt im laufenden Projekt.
Dabei arbeiten wir nicht theoretisch, sondern entlang realer Anforderungen:
- Erfassen von Anforderungen mit Event Storming oder Event Modelling
- Design von Commands, Events, Aggregates und Read Models anhand echter Features
- Gemeinsames Entwickeln von Makro- und Mikroarchitektur
- Arbeit direkt in der bestehenden Codebasis
Wir bilden das Team aus, während es gemeinsam mit uns Anforderungen und Features umsetzt.
Wenn bereits Technologien wie Axon im Einsatz sind, unterstützen wir auch bei Migrationen z. B. hin zu OpenCQRS, einem von uns entwickelten frei verfügbaren Open-Source-Framework.
Klarheit, Stabilität, Eigenständigkeit
Nach der Zusammenarbeit ist das Team in der Lage, die Systeme auf Basis von CQRS/ES eigenständig weiterzuentwickeln.
Das führt konkret zu:
- Architekturentscheidungen, die bewusst und nachvollziehbar getroffen werden
- Schnellere Einarbeitung neuer Entwickler
- Fachliche Klarheit im Code, Software und Business sprechen dieselbe Sprache
- Änderungen bleiben lokal und erzeugen keine unerwarteten Seiteneffekte
Langfristig entsteht ein System, das nicht gegen die Fachlichkeit arbeitet, sondern mit ihr wächst und so der natürlichen Erosion aktiv entgegenwirkt.
Gemeinsam ins Projekt eintauchen
Begleitendes Coaching im laufenden Projekt auf Zeit, nicht auf Vorrat.
Wir arbeiten:
- eng mit dem Team zusammen
- an echten Features
- in der realen Systemlandschaft
Der Einstieg erfolgt über ein gemeinsames Gespräch:
- Klärung der aktuellen Situation
- Einschätzung des Reifegrads
- Identifikation sinnvoller nächster Schritte
Anschließend definieren wir gemeinsam, ob und wie eine Zusammenarbeit konkret aussehen kann.
Warum wir das gut können
Wir bringen langjährige Erfahrung in der Umsetzung von Event-driven Architekturen und CQRS/ES in realen Projekten mit, nicht nur aus der Theorie. Wir sind die Experten im Bereich CQRS/ES, sind mit unseren Vorträgen auf zahlreichen Konferenzen vertreten und veröffentlichen regelmäßig in relevanten Zeitschriften.
Unser Fokus liegt darauf:
- Architektur gemeinsam mit Fachbereichen und Entwicklungs-Teams zu entwickeln, nicht vorzugeben
- Wissen nachhaltig im Team zu verankern
- komplexe Anforderungen einfach in funktionierende Systeme zu übersetzen
Zusätzlich haben wir mit OpenCQRS, basierend auf unserer praktischen Projekterfahrung, ein Framework entwickelt, das die Probleme anderer Lösungen vermeidet.
Verwandte Themen
- Event Modelling und Event Storming
- Agentenbasierte Softwareentwicklung