hacer. Son DTOs de transporte de inputs entre cliente y la aplicación Parámetros variables según tipo de operación. Especificación basada en tareas.
lógica de negocio. Validan reglas de negocio. Realizan las operaciones concretas. Llamadas a factorías y repositorios. La lógica NO utiliza el modelo de lectura para obtener información.
que contienen información de nuestro modelo. Las vistas o proyecciones son estructuras ajustadas a la representación que queremos hacer de los datos. • Vistas de formularios, listados, reports… Capa de lógica pequeña para gestionar las consultas y acceder a la infraestructura para leer.
se consolida el estado de una operación hasta que se actualizan las proyecciones de los datos. El estado actual no está disponible inmediatamente. Actualizaciones asíncronas.
en el modelo de escritura en lugar del estado actual de una entidad. UPDATE tabla_de_entidades SET estado = ‘delivered’ WHERE id = 589323 Unifica la forma en la que fluyen los datos entre un modelo y otro. Conservamos todo el historial de operaciones sobre los agregados del modelo negocio.
mejora de rendimiento y las necesidades de consistencia de nuestra aplicación. Y en base a eso decidir que estrategia seguir. Si implementamos CQRS sobre una aplicación legacy hacerlo de forma incremental. Si implementamos CQRS sobre DDD elegir el bounded context que requiera esta solución.
Ricardo Borillo - CQRS y los beneficios surgidos de la necesidad Diego Moreno - Más allá del CRUD… (charla Codemotion 2016) Implementing Domain Driven Design. Vaughn Vernon Antonio J. García Lagar @ajgarlag