Actualmente estoy estudiando CQRS y veo algunos códigos fuente (SimpleCQRS de Greg Young y Mark Nihjof). Todavía confundo con el comando y el evento de dominio. ¿Siempre necesitamos mantener el dominio para "escribir la base de datos" en el controlador de eventos de dominio? Es común si llamo al código para guardar el dominio en la base de datos en el controlador de comandos (generalmente a través del repositorio de dominio) y luego dejo que el controlador de eventos del dominio maneje otras cosas (como actualizar el modelo de lectura y otros servicios como notificación por correo electrónico) . Gracias.El mejor lugar para guardar el dominio para escribir la base de datos en CQRS (controlador de comandos o controlador de eventos de dominio)
Respuesta
Almacenamiento de eventos: No persistiría eventos utilizando un controlador de eventos. Delegarlo desde un manejador de comandos a un repositorio o unidad de trabajo es probablemente el enfoque más común cuando se usa el suministro de eventos. Entonces, sí, es común hacer la persistencia en el controlador de comando (bueno, delegarlo) y hacer que el manejador de eventos haga otras cosas.
Estado de almacenamiento: cuando no utilizo EventSourcing, supongo que las personas almacenan eventos próximos al estado o peor, nada (usando una cola como mecanismo de persistencia). Aún así, la lógica de persistencia reside en el espacio del controlador de comando.
Los comandos capturan la intención y le dicen al sistema qué hacer. Siempre use el imperativo. Los eventos capturan el intento y dicen lo que sucedió en el sistema. Siempre en tiempo pasado.
Me parece una persona nueva en este tema. Lo mejor que puede hacer para comprender los conceptos de CQRS es ver material en http://cqrsinfo.com y http://skillsmatter.com (architecture/ddd). Otras personas que escriben sobre este tema (fuera de lo común): Udi Dahan, Gregory Young, Jonathan Oliver, Rinat Abdullin, Jérémie Chassaing, ...
Gracias por su explicación, soy nuevo en CQRS. – user522037
- 1. Eventos de dominio que desencadenan otros cambios de dominio en CQRS
- 2. Determine el controlador de dominio actual programáticamente
- 3. ¿Dónde construir nuevas entidades de dominio? Controlador, repositorio o mapeador
- 4. toca el controlador de eventos para UIImageView
- 5. Versiones de eventos CQRS
- 6. Diseño impulsado por dominio y eventos de dominio
- 7. secuencia de comandos para buscar el PageRank del dominio
- 8. Controlador de primavera: objetos de uso de dominio como @RequestBody
- 9. ¿Anula el método virtual o crea el controlador de eventos?
- 10. C# Mejor práctica: controlador de eventos centralizado o no
- 11. obtener el SID de la máquina (incluido el controlador de dominio principal)
- 12. Javascript: El mejor lugar para registrar controladores de eventos
- 13. Singleton PHP - controlador de base de datos
- 14. ¿El método "Guardar" pertenece a la Entidad de Dominio Empresarial?
- 15. Añadir controlador de eventos para ListView Items_added
- 16. Escribir controlador USB para Android
- 17. Los eventos CQRS no contienen los detalles necesarios para actualizar el modelo de lectura
- 18. Controlador de eventos en DataTemplate
- 19. Sincronizar la hora del sistema con el controlador de dominio con el código .NET
- 20. Uso de Autofac con eventos de dominio
- 21. Al usar PHP en Windows, ¿qué es mejor (1) el controlador nativo para SQL Server o (2) el controlador PDO?
- 22. ¿Base de datos de trivia de dominio público para el juego?
- 23. ¿Cómo puedo saber qué computadora es el controlador de dominio en Windows mediante programación?
- 24. ¿Validación de reglas en la capa de datos o dominio?
- 25. Controlador de vista de modelo: ¿El controlador o el modelo recuperan datos del servidor?
- 26. Ubicación recomendada para el almacenamiento de documentos, en la base de datos o en otro lugar?
- 27. ¿Cuándo entran en juego los controladores de eventos de dominio?
- 28. añadir un controlador de eventos
- 29. Delphi: cómo asignar dinámicamente un controlador de eventos sin sobrescribir el controlador de eventos existente?
- 30. Adición de controlador de eventos en main() para SerialPort
tal vez esto ayude http://www.udidahan.com/2009/12/09/clarified-cqrs/Es una muy buena publicación de Udi Dahan al respecto. – roundcrisis