Command Query Responsibility Segregation with Event Sourcing and Caching (CQRS with ES and Caching) is een architectuurpatroon dat queries (reads) scheidt van commando's (writes) en gebruik maakt van event sourcing en caching om de prestaties te verbeteren.
In dit patroon worden opdrachten uitgevoerd met behulp van een schrijfmodel dat de status van het systeem bijwerkt en gebeurtenissen publiceert naar een berichtenmakelaar of gebeurtenisbus. Deze gebeurtenissen worden vervolgens opgeslagen in een gebeurtenisarchief, dat dient als de bron van waarheid voor de huidige status van het systeem. Het schrijfmodel kan vervolgens opnieuw worden opgebouwd door gebeurtenissen uit de gebeurtenisopslag opnieuw af te spelen wanneer dat nodig is.
Aan de queryzijde wordt een leesmodel gebruikt om gegevens uit het systeem op te halen. Dit leesmodel is geoptimaliseerd voor queryprestaties en wordt asynchroon bijgewerkt door zich te abonneren op gebeurtenissen uit het gebeurtenisarchief. Caching kan ook worden gebruikt om queryprestaties verder te optimaliseren door veelgebruikte gegevens in het geheugen op te slaan.
Door lees- en schrijfbewerkingen te scheiden en gebruik te maken van event sourcing en caching, kan CQRS met ES en caching de schaalbaarheid, betrouwbaarheid en prestaties van een systeem verbeteren. Het is met name handig voor systemen met complexe datamodellen en veel query's.
Publicatie datum: