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.
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 , -.