Odvajanje odgovornosti za naredbe i upite s izvorom događaja (CQRS+ES) arhitektonski je obrazac koji odvaja odgovornost za obradu naredbi (operacije pisanja) od odgovornosti za obradu upita (operacije čitanja) korištenjem izvora događaja.
U CQRS+ES, operacijama pisanja upravlja model Command, koji prima naredbe od klijenata i pretvara ih u događaje. Događaji se zatim pohranjuju u spremište samo za dodavanje koje se naziva Event Store. Spremište događaja je sustav zapisa, što znači da se sve promjene stanja sustava bilježe kao niz događaja.
S druge strane, operacijama čitanja upravlja Query model, koji čita podatke iz Event Storea i generira modele čitanja. Ovi modeli čitanja optimizirani su za specifične upite i mogu se pohraniti u predmemoriju za brže čitanje.
Odvajanje odgovornosti za naredbe i upite omogućuje skalabilnost i optimizaciju performansi. Model Command može se optimizirati za operacije s teškim upisom, dok se model Query može optimizirati za operacije s teškim čitanjem.
Općenito, CQRS+ES pruža način za implementaciju visoko skalabilnog sustava otpornog na pogreške i pokretanog događajima koji se može lako razvijati tijekom vremena.
Datum objave: