Pregunta

En CQRS, la fuente de eventos es nuestra única fuente de información verdadera, nunca confíe en su DataModel de lectura, entonces si necesito mostrar un cuadro de mensajes de confirmación que se muestra, por ejemplo, "las últimas 10 acciones del usuario X", ¿qué aproximación debo usar?

1 - Envíe un comando para consultar las últimas 10 acciones a mis agregados, ¿luego el agregado publica 10 eventos que manejo en mi interfaz de usuario que contiene las acciones del usuario?

2 - O simplemente, ¿consultar mi modelo de lectura?

¿Qué dice CQRS en mi caso?

Gracias chicos.

John Smith

¿Fue útil?

Solución

Nunca confíe en su modelo de lectura, no significa que necesita datos de lectura de Write Database. Eso significa que sus datos en el modelo de lectura pueden volverse inválidos. En este caso, debe hacer algunas correcciones en sus manejadores de eventos y, debido a que confía, solo escriba la base de datos de la base de datos de la base de datos de sus eventos (escriba la base de datos).

Reglas simples (al menos estoy sigo estas reglas):

  1. Siempre lea datos de la base de datos Leer.
  2. Puede acceder a la raíz agregada solo si necesita verificar algo antes de aplicar el evento a AR y cuando necesita eventos de reproducción (dentro de su dominio debe ser solo un método para acceder a AR - GetByid).

En su ejemplo, todo es simple: manejar los mensajes AR del usuario y almacenar eventos en formato (debe mapear los datos del evento, no solo almacenar el evento) que necesita dentro del usuario (recopilación anidada en caso de la base de datos NoSQL) o en la tabla separada en el caso de SQL base de datos.

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