В ответ на few questions Джонатан Оливер упоминает использование AsynchronousCommitDispatcher для обработки нескольких единиц работ.EventStore и более одной единицы работы?
Я до сих пор в стадии разработки моего проекта (и все еще учусь CRQS и ES) и есть несколько вопросов:
1) Буду ли я создать AsynchronousCommitDispatcher для каждого агрегатного корня, которые будут затронуты в области событие поднято?
2) Что произойдет, если у меня есть механизм блокировки, когда отправленное событие не может внести изменения в общий узел, если он заблокирован другим пользователем? Повторяет ли AsynchronousCommitDispatcher, если есть блокировка?
3) Что делать, если система опускается до обработки события домена? Если я не буду настаивать на том, что он не был обработан, разве он не будет потерян?
4) Мое первоначальное понимание заключалось в том, что типы диспетчеров предназначались для обмена сообщениями по проводам или для обновления модели чтения. Здесь мы используем его для обновления другого заполнителя. Я это правильно?
ТИА
JD
Спасибо, Джонатан за ваш ответ. Я все еще немного смущен, если у меня есть сводный корень, который должен изменить другой агрегат, как бы я это сделал? Это что-то, что я сделал бы за пределами функциональности хранилища событий? –
EventStore не заботится об агрегатах или что-то в этом роде. Он заботится только о добавлении событий в конец потока. –