¿Por qué?

Es la manera de realmente obtener componentes (Arquitectura de software, enfoque C4) realmente autónomos.

¿Qué información contienen los eventos?

Toda la necesaria para procesar y ejecutar el comando correspondiente, y en caso de que sea muy grande el contenido se puede pasar alguna referencia a un almacenamiento compartido para obtener la información. En cualquier caso, estos datos son DTOs contenidos en el evento.

El procesamiento entre contextos es como sigue:

¿Cómo se transmiten estos eventos?

Esto depende de la arquitectura elegida:

  • Para microservicios es ideal usar colas que se trata de una comunicación asíncrona con buffer
  • Para monolitos podemos:
    • Usar colas internas de forma similar a como haríamos con microservicios
    • Utilizar un “enlace directo” entre el componente upstream y el downstream mediante una llamada a una función.

¿Qué maneja o gestiona los eventos?

El manejador que traduce eventos a comandos, puede formar parte del contexto descendente (ubicándose en el límite del contexto), o puede ser realizado por un enrutador o gestor de procesos independiente que funcione como parte de la infraestructura, dependiendo de la arquitectura y de dónde desees establecer el acoplamiento entre eventos y comandos.