El mejor lugar para ahorrar dominio de base de datos para escribir En CQRS (controlador de comandos o de dominio de controlador de eventos)

StackOverflow https://stackoverflow.com/questions/4665583

  •  10-10-2019
  •  | 
  •  

Pregunta

Estoy estudiando CQRS en este momento, y veo algunos códigos fuente (Greg Young y Mark SimpleCQRS Nihjof 's). Todavía confundir con mando y dominio evento. Por qué siempre tenemos que persistir dominio a "base de datos de escritura" en el controlador de eventos de dominio? ¿Es común que si llamo el código para guardar el dominio de la base de datos de controlador de comandos (por lo general a través del repositorio de dominio), y luego dejar que el controlador de eventos de dominio para manejar otras cosas (como: actualización leer modelo y hacer otros servicios como notificación por correo electrónico). Gracias.

¿Fue útil?

Solución

Almacenamiento de eventos: yo no persistir eventos utilizando un controlador de eventos. Delegándola de un controlador de comandos a un repositorio o unidad de trabajo es probablemente el método más común cuando se utiliza eventsourcing. Así que, sí, es común hacer la persistencia en el CommandHandler (bueno, delegarla) y tener el controlador de eventos hacer otras cosas.

El almacenamiento de estado: Cuando no utilice eventsourcing, supongo que la gente almacena eventos junto a otro o peor, no es en absoluto (utilizando una cola como mecanismo de persistencia). Aún así, reside la lógica de persistencia en el espacio de la CommandHandler.

Los comandos de captura de la intención y decirle al sistema qué hacer. Utilice siempre el imperativo. Eventos a Captura y dicen lo que ha sucedido en el sistema. Siempre en el tiempo pasado.

Usted me parece alguien nuevo en este tema. Lo mejor que puede hacer para entender los conceptos de CQRS es para ver material sobre http://cqrsinfo.com y http://skillsmatter.com (arquitectura / ddd). Otras personas ese blog sobre este tema (de la parte superior de mi cabeza): Udi Dahan, Gregory joven, Jonathan Oliver, Rinat Abdullin, Jérémie Chassaing, ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top