Domanda

Sono nuovo di CQRS e confuso su come comando scrivere un cambiamento di indirizzo a un oggetto cliente

Diciamo che ho diviso le informazioni sui clienti in due tabelle

cliente - banca dati di dominio

Attivo Preferito

banca dati Customer_Read

Nome,

Indirizzo,

Telefono,

e-mail

utente modifica l'indirizzo del cliente. I campi di indirizzo sono tutti nel database di lettura. ci possono essere 3 o più di query amichevole tabelle che sta mantenendo le informazioni di indirizzo.

Se ho ben capito il CQRS implementazioni (campione) di dominio del Cliente (root Aggregate rimosso) dovrebbe essere la pubblicazione di eventi per il cambiamento di indirizzo che dovrebbe essere gestito da più gestori di aggiornare ciascuna del tavolo.

Come faccio a implementare questo quando non sarò Modifica dello stato dell'oggetto cliente? Fare dominio devono sapere che ha l'indirizzo in un altro database?

Grazie in anticipo.

Saluti,

Il Mar

Aggiornamento -

Dopo aver attraversato gli altri messaggi su rete Io parto dal presupposto che se lo stato non viene modificato dal comando nessun caso verrà generato per salvare il dominio stesso, ma sarà applicata eventi per modificare l'indirizzo nella query / Vista Modello tavoli amichevoli.

È stato utile?

Soluzione

È ancora bisogno di un po 'di persistere qualche parte i dati del dominio nella persistenza di scrittura. In questo modo l'indirizzo viene memorizzato in questo negozio di persistenza, evento viene pubblicato dopo averlo cambiato.

In questo modo:

  • se non ci fosse nessun cambiamento - siamo in grado di saltare la pubblicazione della manifestazione
  • dominio non ha bisogno di sapere nulla di oggetti che possono (o non possono) essere sottoscritte ai suoi eventi.

Questa logica vale sia per la persistenza nel DB relazionali (MS SQL con NHibernate, per esempio) e l'approccio evento di sourcing.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top