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