События домена, которые запускают другие изменения домена в CQRS

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

Например, предположим, что у вас есть следующие требования:

  • при нажатии кнопки «закрыть учетную запись» закрыть учетную запись
  • , когда счет погашен, закрыть счет
  • , когда счет закрыт, пометить владельца счета как «особый»

Как лучше всего справиться с этим?

  1. Make Account.Close () создать событие AccountClosed и также помечают владельца как «особый»
  2. Создайте обработчик AccountClosed, который помечает владельца как «особый»
  3. Создайте обработчик AccountClosed, который отправит команду MarkOwnerAsSpecial.
  4. Сделайте обработчики команд, которые закройте учетную запись и отметьте владельца учетной записи как «особый»
8
задан Dennis Traub 8 January 2012 в 10:36
поделиться