У меня есть несколько разных ограниченных контекстов в домене. Валидация операции CRUD строится в каждом ограниченном контексте.
Например, я могу создать объект, называемый GAME, только если человек, создающий его, является Лидером группы.
В этом примере у меня есть два ограниченных контекста (BC). Один из них - Game BC, а другой - Пользователь BC. Чтобы решить проблему, в Game BC, я должен сделать вызов службы домена, например IsGroupLeader(), в Пользователь BC, прежде чем продолжить создавая игру.
Я не думаю, что этот тип связи рекомендуется DDD. Я могу иметь объект User также в Game BC, но я не хочу, потому что один и тот же пользовательский объект используется по-разному в другом контексте в другом BC.
Мои вопросы:
-
Должен ли я использовать события домена, где Game BC должен отправить событие в Пользователь BC с запросом статуса пользователя? При таком подходе я не делаю синхронный вызов, например IsGroupLeader, но событие с именем is_group_leader. Затем Game BC должен дождаться, пока пользователь BC BC обработает событие и вернет статус. Игра BC создаст объект игры только после того, как событие BC BC обработает событие.
-
Является ли CQRS решением моей проблемы?
Любая идея оценена.