Event Driven Design

10.05.2019

Mit ereignisgesteuerten Architekturen lassen sich Geschäftsprozesse anschaulich modellieren und effektiv implementieren.

Kommunikationsprobleme in der Softwareentwicklung: Der Auftraggeber sitzt mit den ITlern am Tisch und beschreibt in seiner Expertensprache die Aufgabenstellung, redet dabei von Remittende, Hardcover und XY. Währenddessen modelliert der Softwareentwickler die Datenbankstruktur und erläutert, wie die API aussehen wird. Am Ende hat jeder das eigene Gesagte verstanden – aber nicht sein Gegenüber.
Das Problem ist die zu technische Denkweise am eigentlichen Geschäftsprozess vorbei.

Event Driven Design stellt hierbei den Geschäftsprozess in den Vordergrund. Dieser wird in einer Event-Storming-Sitzung gemeinsam von den Auftraggebern und den Softwareentwicklern modelliert. Dabei entstehen:
– Ereignisse, welche in der Vergangenheitsform verfasst sind und beschreiben was passiert ist
– Kommandos, dies sind Änderungswünsche an das System und ziehen Events nach sich
– Abfragen, rein lesender Natur

Quelle: Paul Rayner http://yowconference.com.au/slides/yowwest2016/Rayner-EventStorming.pdf
Quelle: Paul Rayner http://yowconference.com.au/slides/yowwest2016/Rayner-EventStorming.pdf

Auf technischer Seite kümmern sich Event Sourcing und CQRS um die Speicherung und die effiziente Darstellung.
Event Sourcing funktioniert ähnlich wie das Konto auf der Bank: Dort wird nicht in einer Zelle der aktuelle Kontostand gespeichert, sondern jede Transaktion einzeln. Möchte man den Kontostand erfahren, so muss man nur die Events der Reihe nach abspielen.
CQRS steht für Command Query Responsibility Segregation und sieht eine strikte Trennung zwischen Schreib- und Lese-Operationen vor, verwendet sogar unterschiedliche Datenbank-Technologien. Da in der Praxis häufig mehr gelesen als geschrieben wird, kann man das sogenannte Read Model beliebig skalieren, während man im Write-Model die Datenintegrität beibehält.
Hier muss das Rad nicht neu erfunden werden. Es existieren eine Reihe von Frameworks, welche alles vereinen:
– wolkenkit https://www.wolkenkit.io/
– Axon https://axoniq.io/
– EventFlow https://github.com/eventflow

Wenn man sich einmal auf die Modellierung mit Events eingelassen hat, können sich beide Seiten mehr um das kümmern, was wirklich wichtig ist: den Geschäftsprozess.

Weitere Meldungen

Klappe - die Erste!

Am 10. Juli war ein Filmteam des Unternehmens commercetools GmbH bei uns im Haus und hat viele spannende Eindrücke aus unserer Produktion mit ihren Filmkameras festgehalten.

Klappe - die Erste!