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