Command and Query Responsibility Segregation with Event Sourcing (CQRS+ES) is een architectonisch patroon dat de verantwoordelijkheid voor het verwerken van opdrachten (schrijfbewerkingen) scheidt van de verantwoordelijkheid voor het verwerken van query's (leesbewerkingen) door gebruik te maken van Event Sourcing.
In CQRS+ES worden schrijfbewerkingen afgehandeld door het Command-model, dat commando's van clients ontvangt en deze omzet in events. De gebeurtenissen worden vervolgens opgeslagen in een alleen-toevoegen-archief, de Event Store genaamd. De gebeurtenisopslag is het registratiesysteem, wat betekent dat alle wijzigingen in de systeemstatus worden vastgelegd als een opeenvolging van gebeurtenissen.
Aan de andere kant worden leesbewerkingen afgehandeld door het Query-model, dat gegevens uit de Event Store leest en leesmodellen genereert. Deze leesmodellen zijn geoptimaliseerd voor specifieke zoekopdrachten en kunnen in de cache worden geplaatst voor sneller lezen.
De scheiding van opdracht- en queryverantwoordelijkheden zorgt voor schaalbaarheid en optimalisatie van prestaties. Het Command-model kan worden geoptimaliseerd voor schrijfintensieve bewerkingen, terwijl het Query-model kan worden geoptimaliseerd voor leesintensieve bewerkingen.
Over het algemeen biedt CQRS+ES een manier om een zeer schaalbaar, fouttolerant en gebeurtenisgestuurd systeem te implementeren dat gemakkelijk in de loop van de tijd kan evolueren.
Publicatie datum: