Event Driven Architecture en .NET 9
Libera el poder de Event-Driven Architecture (EDA) y aprende como construir escalables y resilentes sistemas
Una de las mayores dificultades en el desarrollo de arquitecturas microservices es no tener mecanismos confiables para poder comunicarse entre ellas, es aquí donde surge el paradigma de Event-Driven Architecture.
Si quieres aprender más de Event-Driven Architecture, sigue leyendo este post o registrate en el curso que acabamos de lanzar con .NET 9:
https://www.netuniversity.org/courses/event-driven
Event-Driven Architecture es un patrón de diseño en el cual las microservices se comunican mediante la creación y consumo de eventos.
Conclusión, es una arquitectura de microservices basada en eventos, por lo que las microservices no se comunican entre sí directamente, sino que envían eventos cuando sucede algo de interés, o algo que modifica su estado.
Por otro lado existen microservices que escuchan estos eventos, toman estos eventos los procesan y ejecutan una determinada acción.
Este modelo de comunicación desacoplada, es decir sin dependencias, aumenta la escalabilidad y la capacidad de mantenimiento de las aplicaciones.
Entonces tenemos los siguientes componentes que forman parte de esta arquitectura:
Event Producer - Microservice encargada de crear eventos.
Event Consumer - Microservice suscrita a un topic y encargada de consumir los eventos.
Event Broker - Servidor intermediario que administra todos los eventos del sistema a través de topics.
¿Qué beneficios tiene Event-Driven Architecture?
Loose Coupling: también llamado acoplamiento flexible, por que los producers y consumers no se conocen entre sí, son independientes, lo que hace que el sistema sea más modular y más fácil de mantener.
Scalability: La mensajería es asíncrona, esto permite que las microservices escalen de forma independiente.
Resilience: Las fallas en una microservice no bloqueen a otras microservices, los consumers pueden manejar, procesar los eventos a su propio ritmo.
Extensibility: Se pueden agregar nuevas Microservices al sistema sin modificar las existentes.
Como funciona Event-Driven Architecture?
Hagamos un workflow paso a paso:
Tenemos una aplicación de recursos humanos que registra a un nuevo empleado, luego de completar este registro, está microservice crea un evento RegisterUserEvent.
La microservice Recursos Humanos envía el evento RegisterUserEvent al Event Broker, dentro de este broker el evento es alojado en un Topic A.
Por otro lado tenemos a una microservice Logística, que está suscrita al Topic A, entonces el broker hace saber a esta microservice que acaba de llegar un nuevo evento.
La microservice de Logística reconoce este nuevo evento alojado en el Topic A, lo consume, lo procesa y ejecuta la lógica para también registrar este nuevo usuario en su propia base de datos.
De este modo podemos ver como un usuario es registrado en ambas aplicaciones, sin que esta comunicación asíncrona afecte sus procesos internos.
Quieres saber cómo implementar Event-Driven Architecture en .NET, registrate ahora en el curso de .NET University: