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: