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