Was ist das Architekturmuster „Befehls- und Abfrageverantwortungstrennung mit Ereignisbeschaffung“?

Command and Query Responsibility Segregation with Event Sourcing (CQRS+ES) ist ein Architekturmuster, das die Verantwortung für die Verarbeitung von Befehlen (Schreibvorgänge) von der Verantwortung für die Verarbeitung von Abfragen (Lesevorgänge) mithilfe von Event Sourcing trennt.

In CQRS+ES werden Schreibvorgänge vom Command-Modell abgewickelt, das Befehle von Clients empfängt und diese in Ereignisse umwandelt. Die Ereignisse werden dann in einem Nur-Anhänge-Speicher namens Event Store gespeichert. Der Ereignisspeicher ist das Aufzeichnungssystem, was bedeutet, dass alle Änderungen am Systemstatus als Abfolge von Ereignissen aufgezeichnet werden.

Lesevorgänge hingegen werden vom Query-Modell abgewickelt, das Daten aus dem Event Store liest und Lesemodelle generiert. Diese Lesemodelle sind für bestimmte Abfragen optimiert und können für schnellere Lesevorgänge zwischengespeichert werden.

Die Trennung von Befehls- und Abfrageverantwortung ermöglicht Skalierbarkeit und Leistungsoptimierung. Das Befehlsmodell kann für schreibintensive Vorgänge optimiert werden, während das Abfragemodell für leseintensive Vorgänge optimiert werden kann.

Insgesamt bietet CQRS+ES eine Möglichkeit, ein hoch skalierbares, fehlertolerantes und ereignisgesteuertes System zu implementieren, das sich im Laufe der Zeit problemlos weiterentwickeln kann.

Veröffentlichungsdatum: