Читая о CQRS, много говорят об уведомлении по электронной почте - мне интересно, откуда взять данные. Представьте себе сенарио, где один пользователь приглашает других пользователей на мероприятие. Чтобы сообщить пользователю, что он был приглашен на событие, ему отправляется электронное письмо.
Конкретные шаги могут выглядеть следующим образом:
- Команда
CreateEvent
со связанной коллекцией приглашаемых пользователей получена сервером.
- Создается новый агрегат
Meeting
, и для каждого приглашаемого пользователя вызывается метод InviteUser
.
- Каждый раз, когда пользователь приглашается на событие, возникает событие домена
UserWasInvitedToEvent
.
- Отправитель уведомления по электронной почте принимает событие домена и отправляет уведомление по электронной почте.
Теперь у меня такой вопрос: куда мне обратиться за информацией для включения в электронное письмо?
Скажите, я хочу включить описание события, а также имя пользователя. Поскольку это CQRS, я не могу получить его через модель моего домена; Все свойства доменных объектов являются частными! Должен ли я тогда запросить сторону чтения? Или, может быть, полностью переместить уведомление по электронной почте на другой сервис?