Glossar   /   Softwarearchitektur

CQRS

CQRS trennt die Verarbeitung von Datenänderungen von der Darstellung und Abfrage dieser Daten.

Auch bekannt als: Command Query Responsibility Segregation

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.

Das könnte Sie auch interessieren

Passend zum Thema

Individuelle Softwareentwicklung Fachliche Anforderungen und Datenmodelle für eine eigene Anwendung konkretisieren.

Quellen und weiterführende Informationen

Martin Fowler: CQRS
← Zurück zu allen Glossarbegriffen

Fachliche Regeln klar abbilden

Komplexe Zusammenhänge erschweren Änderungen an Ihrer Anwendung? Arbeiten Sie an konkreten Beispielen heraus, welche Daten und Regeln zusammengehören.

Kontakt aufnehmen