In che modo separare aggregate roots (AR) comunicare tra loro in un ambiente basato sui principi DDD utilizzando un back-end aggregato basato su eventi?Comunicazione intergrega in CQRS + DDD + Event Sourcing
Ad esempio, ho una radice aggregata Facility
aggregata (AR) che ha un metodo factory responsabile della creazione di un AR Booking
. Il Booking
è una combinazione sensibile al tempo di un AR e un AR Facility
. Un Person
può essere prenotato solo in un singolo Facility
.
In DDD, avrei mantenuto i riferimenti allo Booking
in Person
e Person
in Facility
. Tuttavia, quando si generano eventi da utilizzare in event-sourcing, penso che provare a gestire la deserializzazione degli eventi dal back-end diventerebbe proibitivo. Pertanto, ho deciso di mantenere solo i riferimenti all'id valore univoco basato su oggetti. Ciò solleva un nuovo problema, tuttavia, quando un metodo su un AR deve chiamare un altro metodo su un altro AR - come gestisci quella situazione? Colpisci il repository dell'origine dell'evento dal dominio AR?
Qual è il caso di utilizzo generale in questo scenario? Mi sto avvicinando a questo tutto sbagliato?
Buona risposta: se si desidera approfondire questo argomento, è possibile che questo messaggio sia utile: [Inter Aggregazione di comunicazione in un evento Sourced System] (http://danielwhittaker.me/2014/11/22/ 4-segreti-inter-aggregato-comunicazione-evento-sourced-system /) – Codescribler