Arquitectura orientada a eventos
La arquitectura orientada a eventos (EDA, por sus siglas en inglés) es un patrón de diseño de software donde los componentes del sistema se comunican a través de eventos — notificaciones discretas de que algo ha sucedido — permitiendo un acoplamiento flexible, capacidad de respuesta en tiempo real y sistemas reactivos escalables.
Comprendiendo Arquitectura orientada a eventos
En una arquitectura tradicional de petición y respuesta, los sistemas se comunican realizando llamadas directas y esperando respuestas. La arquitectura orientada a eventos, en cambio, hace que los componentes emitan eventos cuando suceden cosas (ha llegado un correo, se ha modificado un archivo, se ha procesado un pago) y que otros componentes se suscriban para reaccionar a los eventos relevantes. Este desacoplamiento hace que los sistemas sean más escalables, resilientes y ágiles. Los eventos suelen publicarse en un corredor de mensajes — RabbitMQ, Kafka o Amazon SQS — que los almacena de forma duradera y los entrega a todos los suscriptores interesados. La EDA es la columna vertebral de las aplicaciones modernas en tiempo real.
Cómo GAIA usa Arquitectura orientada a eventos
Todo el backend de GAIA está construido sobre una arquitectura orientada a eventos utilizando RabbitMQ como intermediario de mensajes. La llegada de correos, actualizaciones de calendario, mensajes de Slack y acciones de los usuarios generan eventos que se publican en colas. Los trabajadores ARQ se suscriben a estos eventos y ejecutan los flujos de trabajo de los agentes correspondientes. Esta arquitectura permite que GAIA sea verdaderamente en tiempo real y escalable: se pueden añadir nuevos tipos de eventos y flujos de trabajo sin interrumpir los procesos existentes.
Conceptos relacionados
Automatización basada en eventos
La automatización basada en eventos (también llamada automatización orientada a eventos) ejecuta un flujo de trabajo en el momento en que ocurre algo, como la llegada de un correo nuevo, la creación de una incidencia o una fila nueva en una hoja de cálculo, en lugar de a una hora fija. Cada automatización combina un evento disparador con las acciones que hay que hacer, y el sistema donde ocurrió el evento avisa a la plataforma de automatización, normalmente mediante un webhook.
Webhook
Un webhook es un mecanismo de devolución de llamada HTTP donde un sistema envía una solicitud HTTP automatizada a una URL específica cada vez que ocurre un evento definido, lo que permite notificación e integración en tiempo real entre servicios sin sondeo.
Cola de mensajes
Una cola de mensajes es un sistema que almacena mensajes (tareas o eventos) enviados por productores y los entrega a consumidores para su procesamiento, desacoplando a ambos y permitiendo una comunicación asíncrona y confiable entre los componentes del sistema.
Pub-Sub (Publicar-Suscribirse)
Publicar-suscribirse (pub-sub) es un patrón de mensajería en el que los emisores publican eventos en un intermediario central sin saber quién los recibirá, y los suscriptores se registran para tipos específicos de eventos y reciben los eventos correspondientes de manera asíncrona.
Disparador
Un disparador es un evento específico, condición u horario que inicia automáticamente un flujo de trabajo automatizado o una acción de agente, sirviendo como punto de partida de cualquier proceso automatizado.
