Mergulhe no CQRS

Este artigo Ă© uma sinopse do material Esclarecido CQRS .





Antes de começar a entender o CQRS, você precisa entender as duas principais forças motrizes por trás dele: colaboração e obsolescência.





Colaboração refere-se a situações em que vários participantes usam ou modificam o mesmo conjunto de dados, independentemente de eles realmente terem a intenção de colaborar. Freqüentemente, existem regras que especificam quais usuários podem fazer modificações. E essas modificações podem ser aceitáveis ​​em um caso e inaceitáveis ​​em outro. O usuário pode ser uma pessoa real ou software.





A obsolescência refere-se ao fato de que em sistemas multiusuário, uma vez que os dados tenham sido mostrados a um usuário, os mesmos dados podem posteriormente mudar e se tornar obsoletos. Quase todo sistema que usa cache, por exemplo, para melhorar o desempenho, trabalha com dados desatualizados. Isso significa que você não pode confiar totalmente nas decisões tomadas por nossos usuários, uma vez que podem ter sido tomadas com base em dados desatualizados.





A arquitetura em camadas padrão não resolve nenhum desses problemas. Embora colocar todos os dados em um único banco de dados possa ajudar a melhorar a colaboração, a obsolescência tende a ser exacerbada em tal arquitetura pelo uso de cache como ferramenta de desempenho.





Figura 1.  - Modelo CQRS
Figura 1. - Modelo 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