Ga naar hoofdinhoud

CQRS

CQRS staat voor Command Query Responsibility Segregation. Het is een software architectuurpatroon dat de verantwoordelijkheden voor het verwerken van opdrachten, ook wel commando's of - in het Engels - commands genoemd, en het ophalen van gegevens, zogenaamde bevragingen, queries, projecties of views, van elkaar scheidt. Dit betekent dat er twee aparte modellen worden gebruikt: een command-model voor het verwerken en opslaan van wijzigingen in de state en een query-model, ook read-model, view-model of projecties genoemd, voor het ophalen van gegevens zonder deze te veranderen. Door Domain-driven design (DDD) is er meer nadruk gekomen op het goed ontwerpen en uitwerken van business domeinen. Daarin blijkt dat het model voor het bijhouden, het command-model, ook echt anders is dan het model voor bevragen, het query-model. CQRS ondersteunt dit juist door die scheiding te benadrukken, ook in de services die een systeem heeft. In DDD wordt dan ook nog een relatie gelegd naar event sourcing, wat een sterke combinatie is.

Betekenis voor de handreiking

In de handreiking worden de verschillende aspecten en perspectieven op bijhouden en leveren uit elkaar getrokken. CQRS was daar (o.a.) de inspiratie voor.

Referenties