Arquitectura (IT)Arquitecto de Soluciones

¿Qué es la arquitectura orientada a eventos (Event-Driven Architecture, EDA) y qué problemas resuelve?

Supere entrevistas con el asistente de IA Hintsage

Respuesta.

La arquitectura orientada a eventos (EDA) es un enfoque en el que los componentes del sistema se comunican a través de eventos: mensajes sobre cambios o acciones que han ocurrido. El sistema consta de generadores de eventos (producers), consumidores (consumers) y un bus de mensajes (message bus, broker), que entrega los eventos.

EDA permite crear sistemas escalables y débilmente acoplados. Un cambio en un componente no requiere modificar otros: solo la generación y el procesamiento de eventos.

Ejemplo de código (generación y procesamiento de eventos en Node.js):

const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const emitter = new MyEmitter(); // Manejador de eventos emitter.on('userCreated', (user) => { console.log('Usuario creado:', user); }); // Generación de eventos emitter.emit('userCreated', { id: 1, name: 'Ivan' });

Características clave:

  • Proporciona un bajo acoplamiento entre componentes
  • Fácil de extender y modificar la lógica de respuesta a eventos
  • Requiere un buen diseño y monitoreo de interacciones

Preguntas capciosas.

¿Es EDA lo opuesto a la arquitectura de microservicios?

No, no son opuestos. Los microservicios a menudo utilizan EDA para la comunicación entre servicios.

¿Se puede usar EDA solo con brokers de mensajes?

No necesariamente. Los eventos locales (por ejemplo, a través del patrón Observer) también implementan EDA, pero los brokers permiten construir sistemas distribuidos.

¿Garantiza EDA la inmutabilidad de los datos?

No. EDA se trata de la interacción entre componentes; la resistencia al procesamiento repetido (idempotencia) y la coherencia de los datos deben implementarse de manera explícita.