2011-01-12 9 views
5

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)

+0

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

Respuesta

7

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

+0

Gracias por su explicación, soy nuevo en CQRS. – user522037

Cuestiones relacionadas