Pregunta
Soy nuevo en CQRS y confundido sobre cómo comando escribirá un cambio de dirección a un objeto de cliente
digamos que he dividido la información del cliente en dos tablas
cliente - la base de datos de dominio
Activo Preferida
Base de datos Customer_Read
Nombre:
Dirección:
Teléfono,
correo electrónico
usuario modifica la dirección del cliente. Los campos de dirección están en la base de datos de lectura. puede haber 3 o más tablas de consulta amigable que mantiene la información de dirección.
Si entiendo la CQRS implementaciones (muestra) de dominio del cliente (eliminado de raíz agregado) debe ser la publicación de sucesos sobre el cambio de dirección que debe ser manejado por varios controladores a actualizar cada uno de la tabla.
¿Cómo se implementa esto cuando no voy a estar cambiando el estado del objeto de cliente? Hacer de dominio tiene que saber que tiene la dirección en otra base de datos?
Gracias de antemano.
Saludos,
El Mar
Actualizar -
Después de pasar por más mensajes en la red que estoy asumiendo que si el estado no se cambia por el comando ningún caso se generará para salvar el propio dominio pero los acontecimientos se aplicará a cambiar la dirección en la consulta / Ver Modelo mesas ambiente.
Solución
Aún hay que persistir alguna alguna parte de datos de dominio en la persistencia de escritura. De esta manera la dirección se almacena en este almacén de persistencia, el evento se publica después de cambiarlo.
De esta manera:
- si no hubiera un cambio - que puede saltarse la publicación del evento
- dominio no necesita saber nada acerca de los objetos que pueden (o no) estar suscrito a sus eventos.
Esta lógica se aplica tanto a la persistencia en DBs relacionales (MS SQL con NHibernate, por ejemplo) y el enfoque evento de abastecimiento.