¿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.