En todos los ejemplos de CQRS que he visto, los eventos de dominio desencadenan actualizaciones en el modelo de lectura, pero nada más. Pero, ¿qué ocurre cuando desea que un evento de dominio cause otros cambios en el dominio?Eventos de dominio que desencadenan otros cambios de dominio en CQRS
Por ejemplo, suponga que tiene los siguientes requisitos:
- cuando se hace clic en el botón "Cerrar cuenta", cerrar la cuenta
- cuando la cuenta se paga apagado, cerrar la cuenta
- cuando una cuenta está cerrada, marque el propietario de la cuenta como "especial"
¿Cuál es la mejor manera de manejar esto?
- Hacer Account.Close() crear un evento AccountClosed y marcan también el propietario de "especial"
- Hacer un controlador AccountClosed que marca el dueño como "especial"
- Hacer un controlador que AccountClosed enviar un comando MarkOwnerAsSpecial
- Hacer los controladores de comandos que cierran la cuenta también marcan el titular de la cuenta como "especial"
Lo he leído antes, pero era tan abstracto que no entendía cómo las sagas básicamente convierten los eventos en comandos. Encontré otro artículo de 2 partes que explica eso y tiene muestras de código. http://blog.jonathanoliver.com/2010/09/cqrs-sagas-with-event-sourcing-part-i-of-ii/ –
@TrystanSpangler Ese enlace da un 404 y parece que se ha reubicado en http://blog.jonathanoliver.com/cqrs-sagas-with-event-sourcing-part-i-of-ii/ – Melle