Soy nuevo en DDD y estoy leyendo artículos ahora para obtener más información. Uno de los articles se centra en eventos de dominio (DE). Por ejemplo, enviar un correo electrónico es un evento de dominio generado después de que se cumplan algunos criterios al ejecutar un fragmento de código.Diseño impulsado por dominio y eventos de dominio
ejemploCódigo muestra una manera de manejar los eventos de dominio y es seguido por este párrafo
Tenga en cuenta que el código anterior se llevará a cabo en el mismo subproceso dentro de la misma transacción que el trabajo regular del dominio para que debe evitar realizar cualquier actividad de bloqueo, como usar SMTP o servicios web. En su lugar, prefiera usar mensajes unidireccionales para comunicarse con otra cosa que haga esas actividades de bloqueo.
Mis preguntas son
- Es esto un problema general en el manejo de DE? ¿O es solo preocupación de la solución en el artículo mencionado?
- Si los eventos de dominio se producen en una transacción y el sistema no los manejará de forma síncrona, ¿cómo deberían manejarse?
- Cuando decido serializar estos eventos y dejar que el planificador (o cualquier otro mecanismo) los ejecute, ¿qué ocurre cuando se retrotrae la transacción? (en el evento del artículo aparece en el código ejecutado en la transacción) ¿quién los cancelará (cuando no se mantienen en la base de datos)?
Gracias