запрос данных из readmodel в обработчике команд - PullRequest
2 голосов
/ 28 ноября 2011

Мне нужно отправить электронное письмо в список администраторов в ответ на команда, отправленная из пользовательского интерфейса. Администраторы, которые должны быть уведомлены получено из запроса к прочитанной модели.

На данный момент - насколько я понимаю, у меня есть только один опция: собрать необходимых администраторов перед отправкой команды и добавить их (пара имя / адрес электронной почты) к команде.

Или - допустимо ли перейти от обработчика команды к чтению модель? Это не правильно, но я не вижу другого пути делать это?

Ответы [ 3 ]

0 голосов
/ 01 декабря 2011

Вы просто не можете получить доступ к модели чтения из своего домена, поскольку ваш домен является временным, а не ваша модель чтения.У вас должен быть список электронных писем, которые были получены во время выполнения команды:)

Вы можете включить или включить в команды, запускающие почту, список электронных писем администратора, который затем сохраняется как событиевременно, или вы могли бы сделать так, чтобы ваша сущность домена создавала другую сущность домена, которая получит электронные письма списка администратора.

Надеюсь, что эта помощь.

0 голосов
/ 16 декабря 2011

Предполагая, что ваши команды генерируют события ...

Для меня правильным способом было бы иметь отдельный обработчик событий для захвата события команды и запуска отправки электронной почты.Ваш обработчик событий будет запрашивать у существующей модели чтения список администраторов.

Сохраняет простоту, так как ваш обработчик команд не должен знать об этой необходимости по электронной почте администраторам.

Вы можете пойти до крайности: концептуально с отдельной системой для этого, которая также обрабатывает ваши созданные / удаленные администратором события, сохраняя их в определенной модели чтения исключительно для хранения списка администраторов для отправки электронного письма.

0 голосов
/ 29 ноября 2011

Вы ничего не говорите о том, как реализовали командную часть.Обычно эта информация доступна в обработчике команд.Затем я запрашиваю источник данных для электронной почты и имени на основе идентификаторов, добавленных в команду.Вам не нужно проходить через модель предметной области, чтобы сделать это.Если у вас нет доступных данных на командной стороне, я не вижу большой проблемы со сбором данных со стороны чтения через службу.Я бы не стал делать это из модели предметной области.

...