© GreenFlash/Shutterstock.com
Teil 3: Spring Kafka als Messaginglösung

Nachrichten aus dem Archiv


Egal ob ein Konto bei einer Bank oder ein Vertrag, den eine Anwaltskanzlei erstellt hat, Events schlagen sich meist auf eine Entität nieder. Kafka dient dem Entwickler als Event Store für eine Event Sourced Application. Wer eine solche Anwendung bauen möchte, sollte sich erst einmal mit dem Konzept des Event Sourcings beschäftigen.

Die Kernidee hinter Event Sourcing [1] ist, alle Veränderungen des Applikationszustands über Events zu erfassen, die in ein Event Log geschrieben werden. Das Event Log ist kein flüchtiger Speicher, sondern persistiert diese Events dauerhaft. Das hat den Vorteil, dass sich der Applikationszustand bei Bedarf jederzeit wiederherstellen lässt, indem man schlicht alle persistierten Events als Sequenz betrachtet und entlang der ursprünglichen Zeitfolge erneut verarbeitet. Viele reale Anwendungen lassen sich ganz natürlich über Event Sourcing abbilden. Eine Bank setzt beispielsweise bei einer Überweisung den Kontostand des Empfängers nicht auf einen dedizierten Wert, sondern persistiert die Tatsache, dass ein Geldeingang erfolgt ist. Der tatsächliche Kontostand ergibt sich dann aus der Folge der gespeicherten Events für das Konto. Ein weiteres Beispiel sind Vertragsänderungen. Bei einer Änderung wird die ursprüngliche Version des Vertrags nicht vernichtet oder ersetzt, sondern ein Vertragszusatz angefügt, der die Anpassung dokumentiert. Als Vertragsgrundlage gilt der Ursprungsvertrag inklusive aller Vertragszusätze.

Sei es das Konto bei einer Bank oder ein Vertrag, den eine Anwaltskanzlei erstellt hat: Events wirken sich in der Regel auf eine Entität aus. Dabei kann die Reihenfolge, in der die Zustandsveränderungen durchgeführt werden, durchaus eine Rolle spielen. In diesem Fall ist es wichtig, dass das Event Log auf Entitätsebene eine Ordnungsgarantie aufweist, sodass Events stets in derselben Reihenfolge aus dem Event Log gelesen werden, in der sie geschrieben worden sind. Dabei betrachten wir Events als unveränderliche Fakten, die, einmal g...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang