¿Cómo se debe comunicar aggregate roots (AR) entre sí en un entorno basado en los principios DDD utilizando un back-end agregado de origen de eventos?Comunicación entre agregados en CQRS + DDD + Event Sourcing
Por ejemplo, tengo una raíz agregada Facility
(AR) que tiene un método de fábrica responsable de crear un Booking
AR. El Booking
es una combinación temporal de Person
AR y Facility
AR. Un Person
solo se puede reservar en un solo Facility
.
En DDD, lo habría celebrado referencias al Booking
en Person
y Person
en Facility
. Sin embargo, al generar eventos para su uso en el suministro de eventos, creo que tratar de manejar la deserialización del evento desde el back-end sería prohibitivo. Por lo tanto, me he limitado a llevar a cabo referencias al valor de los id únicos basados en objetos. Esto trae a colación un nuevo problema, sin embargo, cuando un método en un AR necesita llamar a otro método en otro AR: ¿cómo manejas esa situación? Pulse el repositorio de origen del evento desde el dominio AR?
¿Cuál es el caso de uso general en este escenario? ¿Me estoy acercando a todo esto mal?
Buena respuesta: si está interesado en profundizar más en este tema, le puede resultar útil esta publicación: [Comunicación entre agregados en un sistema de origen de eventos] (http://danielwhittaker.me/2014/11/22/ 4-secrets-inter-aggregate-communication-event-sourced-system /) – Codescribler