Was bedeutet CQRS?
CQRS steht für Command Query Responsibility Segregation. Ein Teil der Anwendung prüft Änderungsaufträge, ein anderer liefert passende Leseansichten. Beide können dadurch unterschiedliche Aufgaben und Datenformen nutzen.
Dafür sind weder getrennte Datenbanken noch Event Sourcing zwingend nötig. Werden Leseansichten zeitversetzt aktualisiert, können Nutzer kurzzeitig ältere Werte sehen. Die zusätzliche Komplexität sollte einen konkreten Nutzen haben.
So sieht das in der Praxis aus
Beispiel: Eine Auftragsanwendung prüft Änderungen in einem eigenen Programmteil und liefert die Auftragsübersicht über ein getrenntes Lesemodell.
Häufige Fragen
Wann kann sich die Trennung von Lesen und Schreiben lohnen?
Wenn komplizierte Änderungsregeln und umfangreiche Abfragen unterschiedliche Anforderungen haben. Bei einfachen Anwendungen kann eine gemeinsame Lösung leichter zu entwickeln und zu betreiben sein.
Benötigt CQRS immer zwei Datenbanken?
Nein. Die Trennung betrifft zunächst Zuständigkeiten und Modelle. Getrennte Speicher sind eine mögliche Umsetzung, aber keine notwendige Voraussetzung.
Warum erscheint eine Änderung manchmal erst später in der Übersicht?
Wenn die Leseansicht asynchron aktualisiert wird, entsteht eine Verzögerung. Die Oberfläche sollte diesen Zustand sinnvoll behandeln und keine sofortige Aktualität versprechen.
