CQRS, qui signifie Command Query Responsibility Segregation, est issu du CQS (Command Query Separation) introduit par Bertrand Meyer dans son ouvrage Object Oriented Software Construction. Meyer soumet le principe que les classes d’une méthode doivent être soit des queries soit des commands.
La différence entre le CQS et le CQRS résulte dans le fait que chaque object CQRS est divisé en deux objets : un pour la requête et un pour la commande.
Une commande est définie comme une méthode qui change un état, alors qu’une requête (query) ne fait que retourner une valeur.
La figure suivante montre l’implémentation basique du pattern CQRS au sein d’une application. Elle entreprend l’échange de messages sous forme de commandes et d’événements. Voyons cela de plus près.

On voit clairement la séparation des parties lectures et écritures sur la figure précédente : l’utilisateur fait une modification sur sa page, ce qui engendre l’envoie d’une commande. Une fois cette commande terminée, un event est publié pour signaler qu’une modification a été apportée.
Voyons cela plus en détail.
Langue Français:
- CQRS PATTERN – Eleven Labs
- CQRS ARCHITECTURE PARTIE 1 – Octo Blog
- CQRS ARCHITECTURE PARTIE 2 – Octo Blog
- A la rencontre d’une architecture méconnue : CQRS – Clever Blog
Langue Anglais:
- CQRS Documents, Greg Young
- CQRS Journey, Dominic Betts, Julián Domínguez, Grigori Melnik, Fernando Simonazzi, Mani Subramanian
- Clarified CQRS, Udi Dahan
- CQRS and Event Sourcing – Code on the Beach 2014, Greg Young
Image a la une prise par: CQRS Journey
Comments