W jaki sposób należy oddzielić aggregate roots (AR) od siebie nawzajem w środowisku zbudowanym na zasadach DDD, wykorzystując zagregowany back-end zdarzeń?Komunikacja międzygregatowa w CQRS + DDD + zaopatrywanie w wydarzenia
Na przykład mam agregat root (AR) Facility
, który ma fabryczną metodę odpowiedzialną za tworzenie AR Booking
AR. Booking
jest zależną od czasu kombinacją Person
AR i Facility
AR. Numer Person
można zarezerwować tylko w jednym numerze Facility
.
W DDD zawierałabym odniesienia do Booking
w Person
i Person
w Facility
. Jednak przy generowaniu zdarzeń do wykorzystania w pozyskiwaniu zdarzeń myślę, że próba obsługi deserializacji zdarzeń z zaplecza stanie się zbyt duża. Dlatego zacząłem jedynie utrzymywać odniesienia do unikalnych id opartych na wartości obiektu. Pojawia się jednak nowy problem, gdy metoda na AR musi wywołać inną metodę na innym AR - jak sobie z tym poradzisz? Hit repozytorium źródła zdarzeń z domeny AR?
Jaki jest ogólny przypadek użycia w tym scenariuszu? Czy podchodzę do tego źle?
Dobra odpowiedź - jeśli chcesz dowiedzieć się więcej na ten temat, ten post może okazać się pomocny: [Komunikacja między agregatami w systemie pozyskiwania informacji] (http://danielwhittaker.me/2014/11/22/ 4-secrets-inter-aggregate-communication-event-sourced-system /) – Codescribler