Sumérjase en CQRS

Este artículo es una sinopsis del material Clarified CQRS .





Antes de comenzar a comprender CQRS, debe comprender las dos fuerzas impulsoras principales detrás de él: la colaboración y la obsolescencia.





La colaboración se refiere a situaciones en las que varios participantes utilizan o modifican el mismo conjunto de datos, independientemente de si realmente tienen la intención de colaborar. A menudo existen reglas que especifican qué usuarios pueden realizar modificaciones. Y estas modificaciones pueden ser aceptables en un caso e inaceptables en otro. El usuario puede ser una persona real o un software.





La obsolescencia se refiere al hecho de que en los sistemas multiusuario, una vez que los datos se han mostrado a un usuario, los mismos datos pueden cambiar posteriormente y volverse obsoletos. Casi todos los sistemas que utilizan el almacenamiento en caché, por ejemplo, para mejorar el rendimiento, funcionan con datos obsoletos. Esto significa que no puede confiar completamente en las decisiones tomadas por nuestros usuarios, ya que podrían haberse basado en datos desactualizados.





La arquitectura en capas estándar no resuelve ninguno de estos problemas. Si bien poner todos los datos en una sola base de datos puede ayudar a mejorar la colaboración, la obsolescencia tiende a exacerbarse en una arquitectura de este tipo por el uso del almacenamiento en caché como herramienta de rendimiento.





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