Command Query Responsibility Segregation (CQRS) (Command Query Responsibility Segregation) ist ein Architekturansatz, der die Verantwortung für Lese- und Schreiboperationen in einem System trennt. Dies ermöglicht eine bessere Skalierbarkeit und Flexibilität, da die beiden Operationen unabhängig voneinander optimiert werden können. CQRS fördert die Verwendung…
Nutze diesen Steckbrief, um den Baustein kurz zu verstehen, ihn im Modell einzuordnen und bei Bedarf in die 360°-Bewertung zu wechseln.
Theoretisches Gebilde: erklärt einen Begriff, ein Prinzip oder ein Denkmodell.
Was Zusammenhänge ordnet, verbindet oder entscheidbar macht.
CQRS trennt das Modell für Schreibbefehle von dem für Leseabfragen, damit beide Seiten fachlich und technisch unterschiedlich optimiert werden können.
CQRS entstand aus der Verbindung von Command-Query-Separation, Domain-Driven Design und dem Praxisproblem, dass ein einziges CRUD-Modell in komplexen Domänen Schreibregeln, Leseansichten und verschiedene Darstellungen schwer vereint. Martin Fowler beschreibt den Ansatz 2011 und sagt, er habe ihn zuerst von Greg Young gehört. Der Kern ist die Trennung von Update- und Lesemodell, nicht eine neue Datenbanktechnik.
Stell dir zwei zusammenarbeitende Schichten vor: Die Schreibseite nimmt Befehle entgegen, prüft Regeln und ändert den fachlichen Zustand. Aus diesen Änderungen wird eine separate Leseseite aufgebaut, die für Abfragen und Darstellungen optimiert ist. Beide Seiten können dieselbe Datenbasis nutzen oder über Ereignisse synchronisiert werden; die Leseseite darf dabei kurz hinterherhinken.
Ein Befehl beschreibt eine beabsichtigte Zustandsänderung und trägt die fachliche Absicht, nicht nur ein Datenfeld.
Eine Abfrage liest Daten und verändert den fachlichen Zustand nicht.
Die Schreibseite prüft Regeln, koordiniert Änderungen und schützt die Konsistenz.
Die Leseseite hält für Anzeigen und Abfragen aufbereitete Projektionen vor.
Nach einer Änderung kann die Leseseite vorübergehend veraltet sein, bis die Synchronisation nachgezogen ist.
Ein Bounded Context kann eigene Modelle und Regeln haben; CQRS passt besonders zu komplexen Domänen.
CQRS hilft vor allem in komplexen Fachdomänen, bei taskbasierten Oberflächen und wenn Lese- und Schreiblast stark auseinandergehen. Der Gewinn liegt in getrennten Optimierungen und klareren Modellen, doch der Preis ist zusätzliche Koordination, mehr Betrieb und oft eventual consistency. Für schlichtes CRUD ist der Ansatz meist unnötig; meist gehört er nur in klar abgegrenzte Teilbereiche.
Wo dieser Baustein im Themenmodell verortet ist.
Keine Strukturpfade verfügbar.
Erkunde, wie dieser Wissensbaustein mit Konzepten, Methoden, Technologien und Tools verbunden ist.
Diese Quellen belegen den Begriff und seine fachliche Bedeutung.
Alle direkten Verbindungen des aktuellen Wissensbausteins in einer kompakten, textuellen Darstellung.
Diese Einordnung zeigt, in welchem Kontext der Baustein typischerweise relevant wird, wie anspruchsvoll er ist und welche Wirkung er im Modell hat.
Die Ebene innerhalb der Organisation (Unternehmen, Domäne, Team), auf der der AssetBlock angewendet wird.