Plongez dans le CQRS

Cet article est un synopsis du matériel clarifié du CQRS .





Avant de commencer à comprendre le CQRS, vous devez comprendre les deux principaux moteurs qui le sous-tendent: la collaboration et l'obsolescence.





La collaboration fait référence à des situations dans lesquelles plusieurs participants utilisent ou modifient le même ensemble de données, qu'ils aient ou non l'intention de collaborer. Il existe souvent des règles qui spécifient quels utilisateurs peuvent apporter des modifications. Et ces modifications peuvent être acceptables dans un cas et inacceptables dans un autre. L'utilisateur peut être une personne réelle ou un logiciel.





L'obsolescence fait référence au fait que dans les systèmes multi-utilisateurs, une fois que les données ont été montrées à un utilisateur, les mêmes données peuvent par la suite changer et devenir obsolètes. Presque tous les systèmes qui utilisent la mise en cache, par exemple pour améliorer les performances, fonctionnent avec des données obsolètes. Cela signifie que vous ne pouvez pas faire entièrement confiance aux décisions prises par nos utilisateurs, car elles auraient pu être prises sur la base de données obsolètes.





L'architecture en couches standard ne résout aucun de ces problèmes. Si le fait de mettre toutes les données dans une seule base de données peut aider à améliorer la collaboration, l'obsolescence a tendance à être exacerbée dans une telle architecture par l'utilisation de la mise en cache comme outil de performance.





Fig. 1.  - Modèle CQRS
Fig. 1. - Modèle CQRS

AC . , (Commands – CQRS). (Queries – CQRS)





(Queries)

, , , ? , , ?





, , , , , . .





, , – , , , , ?





? ? SELECT * FROM MyViewTable . . . - (, ).





, . , . , . , .





, , . , , .





. , , . – .





, , .





, , . (, .). , . , – . . ?





, , . , , , , .





, , , . .





(CQRS).





(Commands)

CQRS , . , Excel ( , – ), .





, , . , , . , ( ). , .





, , . - , , - , , .





, , , - . - , - . , . , - .





, , . - , , . , . , , , .





, , , .





UIs

(Queries) . , , , .





UI , , , , , . , , ID . , ID (int, guid .).





, , – . - .





, , . , , .





, . «» . , ? -?





, , , , . . , ? , ?





( ), , , , : «, ». , .





, , – . , – .





, . , , – .





- , , , . . , , , , .





, , , .





1 , AC, AC, . , , , . , , .





(service layer)

. , CQRS, , , , . .





, . , , , ? – , , .





, , , , .





?

1 , , . , , .





, – , (CQRS). , , ?





«»? ? « »?





, , . , , .





, – , .





, , , , , ? , , ? key-value. - ? , .





, . , , CQRS.





, , , , . :





MakeCustomerPerferredCommand → CustomerHasBeenMadePerferredEvent





. , , .





, , . .





CQRS , . CQRS, - (SOA), . , -, -, .





, -, , .





CQRS . , , .





- CQRS, . , . , , , .





CQRS , -.








All Articles