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 es un patrón en el que los flujos de trabajo se desencadenan automáticamente en respuesta a eventos específicos, como la llegada de un nuevo correo electrónico, la creación de un evento de calendario o la publicación de un mensaje, permitiendo un procesamiento reactivo en tiempo real.
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.


