CQRS mit NServiceBus-Sagas
15.02.2021, 00:00 Uhr
Mehr Sagas im Domain Model
Die Nutzung von NServiceBus bietet viele Vorteile – sie erleichtert zum Beispiel die Umsetzung einer CQRS-Architektur.
Als mögliche Option zur Integration von Diensten in verteilten Systemen wurde Messaging in [1] vorgestellt. Dabei wurde als technologische Grundlage NServiceBus verwendet. Die Möglichkeiten dieses Distributed-Application-Frameworks konnten dort nur angerissen werden. Es wurde aber bereits angedeutet, dass die eigentliche Herausforderung auch weniger in der Beherrschung der Technologie als in deren korrekter architektonischer Umsetzung liegt. Das Framework selbst schützt den Entwickler bereits vor vielen möglichen Irrwegen, trotzdem gibt es immer noch eine Menge Bewegungsspielraum. Der vorliegende Artikel beleuchtet daher ein Verwendungsmuster von NServiceBus und stellt Vor- und Nachteile dieses Ansatzes heraus.
Ziel ist die Umsetzung des Prinzips „Command and Query Responsibility Segregation“, kurz CQRS. Dieses Architekturmuster fordert die Trennung von Befehlen (Commands) und Abfragen (Queries). Erstere sollen den Zustand des Systems verändern, dafür aber keine Informationen zurückgeben, Letztere sollen Informationen liefern, aber den Zustand des Systems nicht verändern. Eine Änderung mit kombinierter Rückgabe von Daten – die zu nicht wiederholbaren Aktionen führen würde – soll ausgeschlossen werden. Diese Trennung der Verantwortlichkeiten (vergleiche Bild 1 oben, „Level 0“) lässt sich auf unterschiedlichen Ebenen der Architektur des Gesamtsystems umsetzen.
Jetzt 1 Monat kostenlos testen!
Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
- + Digitales Kundenkonto,
- + Zugriff auf das digitale Heft,
- + Zugang zum digitalen Heftarchiv,
- + Auf Wunsch: Weekly Newsletter,
- + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar