Arquitetura Orientada a Eventos
Arquitetura orientada a eventos (EDA) é um padrão de design de software no qual componentes do sistema se comunicam por meio de eventos — notificações discretas de que algo aconteceu — permitindo baixo acoplamento, resposta em tempo real e sistemas reativos escaláveis.
Entendendo Arquitetura Orientada a Eventos
Em uma arquitetura tradicional de requisição-resposta, os sistemas se comunicam fazendo chamadas diretas e aguardando respostas. Já na arquitetura orientada a eventos, os componentes emitem eventos quando algo acontece (um e-mail chegou, um arquivo foi alterado, um pagamento foi processado) e outros componentes se inscrevem para reagir a eventos relevantes. Esse desacoplamento torna os sistemas mais escaláveis, resilientes e responsivos. Os eventos geralmente são publicados em um message broker — RabbitMQ, Kafka ou Amazon SQS — que os armazena de forma durável e os entrega a todos os assinantes interessados. EDA é a espinha dorsal de aplicações modernas em tempo real.
Como GAIA usa Arquitetura Orientada a Eventos
Todo o backend da GAIA é construído com arquitetura orientada a eventos, usando RabbitMQ como corretor de mensagens. A chegada de e-mails, atualizações de calendário, mensagens do Slack e ações dos usuários todos geram eventos que são publicados em filas. Os trabalhadores ARQ assinam esses eventos e executam os fluxos de trabalho adequados dos agentes. Essa arquitetura torna a GAIA realmente em tempo real e escalável — novos tipos de eventos e fluxos podem ser adicionados sem interromper o processamento existente.
Conceitos relacionados
Automação Orientada a Eventos
Automação orientada a eventos é um padrão em que fluxos de trabalho são acionados automaticamente em resposta a eventos específicos, como a chegada de um novo e-mail, a criação de um evento de calendário ou o envio de uma mensagem, permitindo processamento em tempo real e de forma reativa.
Webhook
Um webhook é um mecanismo de callback HTTP em que um sistema envia uma requisição HTTP automatizada para uma URL especificada sempre que um evento definido ocorre, permitindo notificações em tempo real e integração entre serviços sem necessidade de polling.
Fila de Mensagens
Uma fila de mensagens é um sistema que armazena mensagens (tarefas ou eventos) enviadas por produtores e as entrega para consumidores processarem, desacoplando-os e possibilitando comunicação assíncrona e confiável entre componentes do sistema.
Pub-Sub (Publicar-Assinar)
Publicar-assinar (pub-sub) é um padrão de mensageria em que publicadores emitem eventos para um corretor central sem saber quem irá recebê-los, e assinantes registram interesse por tipos específicos de eventos e os recebem de maneira assíncrona.
Gatilho
Um gatilho é um evento, condição ou agenda específica que inicia automaticamente um fluxo de trabalho automatizado ou a ação de um agente, servindo como ponto de partida para qualquer processo automatizado.


