Во всех примерах CQRS, которые я видел, события домена запускают обновления модели чтения, но ничего больше. Но как насчет того, чтобы событие домена вызывало другие изменения в домене?
Например, предположим, что у вас есть следующие требования:
- при нажатии кнопки «закрыть аккаунт» закрыть аккаунт
- когда счет будет погашен, закрыть счет
- когда учетная запись закрыта, отметьте владельца учетной записи как "особого"
Как лучше всего с этим справиться?
- Заставьте Account.Close () создать событие AccountClosed и также пометить владельца как "особый"
- Сделайте обработчик AccountClosed, который помечает владельца как "особый"
- Создайте обработчик AccountClosed, который отправит команду MarkOwnerAsSpecial
- Сделайте так, чтобы обработчики команд, закрывающие учетную запись, также помечали владельца учетной записи как «особого».