Как отдельные агрегатные корни (AR) должны взаимодействовать друг с другом в среде, построенной на принципах DDD, с использованием агрегированного серверного источника?
Например, у меня естьFacility
совокупный корень (AR), у которого есть фабричный метод, отвечающий за создание Booking
AR.Booking
является чувствительной ко времени комбинацией Person
AR и Facility
AR.Person
можно забронировать только за один Facility
.
В DDD я бы держал ссылки на Booking
в Person
и Person
в Facility
.Тем не менее, при создании событий для использования в источнике событий, я думаю, что попытка обработать десериализацию событий из серверной части стала бы запретительной.Поэтому я взял только хранение ссылок на уникальные идентификаторы на основе объекта значения.Однако возникает новая проблема, когда метод в AR должен вызывать другой метод в другом AR - как вы справляетесь с этой ситуацией?Попадание в хранилище источника событий из домена AR?
Каков общий вариант использования в этом сценарии?Я все неправильно подхожу?