flex-height
text-black

Pessoa a fazer uma compra online

O que é arquitetura orientada a eventos?

O modelo de integração baseado em arquitetura orientada a eventos deteta e atua sobre “eventos” importantes em tempo real.

default

{}

default

{}

primary

default

{}

secondary

Definição de arquitetura orientada a eventos e porque é importante

A arquitetura orientada a eventos é uma abordagem de design de software que permite às organizações reagir instantaneamente a qualquer alteração significativa de estado. Imagine se uma empresa pudesse reagir no momento em que algo importante acontece, como quando um cliente faz uma compra online, um sensor sinaliza uma avaria iminente, o preço de uma ação cai ou um alerta de segurança é acionado. Estas mudanças—chamadas de eventos—acontecem o tempo todo, em todas as organizações, em todos os setores. O sucesso depende da rapidez com que o negócio consegue responder aos acontecimentos.

É aqui que entra a arquitetura orientada a eventos (EDA). Em vez de esperar por atualizações agendadas ou depender de sistemas rígidos e fortemente conectados, a arquitetura orientada a eventos permite que as aplicações comuniquem de forma assíncrona através de componentes fracamente acoplados. Isto significa que cada parte do sistema pode atuar de forma independente—sem conhecer o funcionamento interno das outras—tornando mais fácil escalar, adaptar e inovar.

Como resultado, os sistemas modernos que utilizam arquitetura orientada a eventos permitem que as empresas ofereçam experiências mais rápidas e personalizadas, automatizem operações e mantenham-se ágeis mesmo com o aumento das exigências e do volume de dados. Ao adotar uma arquitetura orientada por eventos, as organizações passam de uma postura reativa para uma proativa, ganhando a velocidade, flexibilidade e resiliência necessárias para prosperar num mundo digital dinâmico.

O que é um evento?

Um evento é qualquer ação ou alteração de estado que impacta o negócio—for exemplo, quando um cliente passa um cartão de crédito, um passageiro faz o check-in para um voo, um utilizador redefine uma palavra-passe ou um armazém atualiza o seu inventário. Pense desta forma: um evento é uma pequena mensagem que diz “algo acabou de acontecer”, permitindo que outras partes do sistema reajam imediatamente.

As empresas tornam-se orientadas por eventos quando conseguem captar e reagir a eventos à medida que estes ocorrem, ou seja, em tempo real. Alguns exemplos comuns de eventos incluem:

Componentes principais da arquitetura orientada a eventos

Para manter a sua estrutura consistente, esquemas de eventos definem a estrutura e o formato do evento, incluindo quais campos o evento contém, tipos de dados e regras de interpretação.

Numa arquitetura orientada a eventos, as aplicações atuam como produtoresde eventos—que produzem ou capturam eventos—ou como consumidoresde eventos—que processam e atuam sobre os eventos. Os produtores transmitem eventos para os consumidores em tempo real através de um corretor de eventos, que é um middleware orientado para mensagens. Os consumidores podem então processar o evento e desencadear outras ações, fluxos de trabalho ou eventos próprios. Este design permite uma resposta em tempo real e decisões mais inteligentes à medida que os dados são recebidos.

O corretor de eventos gere canais de eventos que ligam produtores a consumidores, garante uma entrega fiável e, frequentemente, oferece funcionalidades como filtragem, persistência e reprodução. Ao desacoplar produtores e consumidores, o intermediário de eventos torna o sistema mais resiliente e escalável.

Numa arquitetura muito simples com um único produtor e um único consumidor em comunicação direta entre si, os corretores de eventos podem ser opcionais. No entanto, na maioria das empresas, várias fontes enviam eventos para vários consumidores, pelo que é necessário um broker, ou até mesmo uma rede de brokers—também conhecida como “malha de eventos”. Quando é utilizado um corretor de eventos ou uma malha de eventos, cria-se um “acoplamento frouxo” das aplicações.

Comunicação síncrona vs. assíncrona

Com comunicação síncrona numa arquitetura orientada a eventos, o produtor do evento espera que o recetor processe e responda antes de continuar. Um exemplo é quando um cliente web envia um pedido HTTP e aguarda a resposta do servidor. A comunicação síncrona é normalmente fortemente acoplada e mais lenta sob cargas elevadas, e “bloqueia” o produtor de executar a sua próxima tarefa até receber uma resposta do consumidor.

Com comunicação assíncrona numa arquitetura orientada a eventos, o produtor não espera uma resposta imediata; pode continuar a processar enquanto o consumidor do evento trata a mensagem mais tarde. Um exemplo é quando um sistema publica um evento num intermediário de eventos, e os consumidores processam-no de forma independente. A comunicação assíncrona é não bloqueante, fracamente acoplada e escalável, tornando-a melhor para sistemas em tempo real e distribuídos.

Modelos orientados por pedidos vs. modelos orientados por eventos em arquitetura orientada a eventos

Num modelo orientado por pedidos, a interação começa com um pedido de um consumidor de eventos a um servidor, e o servidor responde. Este modelo é baseado em pull—o que significa que um consumidor solicita ativamente dados ou serviços ao servidor quando deles necessita, em vez de receber atualizações automáticas—e pode ser síncrono ou assíncrono. Modelos orientados por pedidos são comuns em aplicações web tradicionais e APIs.

Num modelo orientado a eventos, a interação começa com um evento—uma alteração de estado ou ação que desencadeia o processamento—e os componentes reagem automaticamente quando os eventos ocorrem, por exemplo, publish/subscribe. Este modelo é caracteristicamente baseado em push—o que significa que o sistema envia automaticamente (“empurra”) eventos ou atualizações para os consumidores assim que estes ocorrem, sem esperar que o consumidor os solicite. Os modelos orientados por eventos são assíncronos, desacoplados e ideais para uma resposta em tempo real.

Pense nas principais diferenças entre os modelos desta forma: nos modelos orientados por pedidos, os utilizadores solicitam dados quando são necessários; nos modelos orientados por eventos, há uma reação automática quando algo acontece.

Padrões comuns de arquitetura orientada a eventos

Os padrões de arquitetura orientada a eventos são abordagens de design comuns que definem como um sistema orientado a eventos capta, processa e consome eventos. Os padrões oferecem estratégias reutilizáveis para gerir a comunicação e as alterações de estado de forma escalável e desacoplada. As organizações aplicam padrões de arquitetura orientada a eventos durante o design e a implementação de sistemas para resolver desafios comuns. Estes incluem a distribuição de eventos, a consistência de dados e a escalabilidade em ambientes assíncronos e fracamente acoplados.

Existem quatro padrões principais para a transmissão de eventos numa arquitetura orientada a eventos:

Estilos de processamento de eventos

Os estilos de processamento de eventos descrevem como o sistema deteta, interpreta e atua sobre os eventos. Elas definem a complexidade da lógica, do tempo, e das relações entre eventos que o sistema compreende. Existem três abordagens diferentes para processar eventos quando estes chegam a um consumidor: processamento simples de eventos, processamento complexo de eventos e processamento de fluxo de eventos.

1. Processamento simples de eventos: Os consumidores processam cada evento à medida que é recebido. Exemplos:

2. Processamento complexo de eventos: Os consumidores processam uma série de eventos para detetar padrões e realizar ações com base no resultado. Exemplos:

3. Processamento de fluxo de eventos: Os consumidores processam e atuam sobre um fluxo constante de dados (dados em movimento) em tempo real utilizando uma plataforma de streaming de dados. Exemplos:

As empresas escolhem o seu estilo de processamento de eventos em tempo real com base nas suas necessidades e casos de uso individuais.

Como funciona a arquitetura orientada a eventos

A arquitetura orientada a eventos é um modelo de integração criado para publicar, capturar, processar e responder a eventos em sistemas distribuídos em tempo real. Quando um evento ocorre numa aplicação, uma mensagem é automaticamente enviada para todas as outras aplicações que precisam de ser informadas, para que possam agir em conformidade.

O seguinte mostra como funciona a arquitetura orientada a eventos, passo a passo:

  1. Ocorre um evento: Dá-se uma alteração significativa de estado, como por exemplo quando um cliente faz uma encomenda, um sensor deteta um aumento de temperatura ou um pagamento falha.
  2. O produtor do evento emite o evento: A aplicação onde o evento ocorreu atua como produtora e publica o evento num corretor de eventos.
  3. O intermediário de eventos encaminha o evento: O intermediário de eventos atua como o agente responsável por gerir os canais de eventos e entregar o evento a todos os consumidores de eventos interessados, o que ajuda a garantir uma comunicação fiável, escalável e desacoplada.
  4. Os consumidores de eventos reagem ao evento: As aplicações ou serviços que subscreveram o canal de eventos processam o evento e tomam as medidas adequadas, como atualizar o inventário, enviar um e-mail de confirmação ou acionar um alerta.

As arquiteturas baseadas em eventos são assíncronas e desacopladas—o que significa que as aplicações não precisam estar conscientes umas das outras para partilhar informações e completar tarefas em tempo real. Informações sobre eventos, ou mensagens, podem circular livremente e automaticamente entre aplicações. Como resultado, o modelo de arquitetura orientada a eventos é muito mais rápido e resiliente do que os modelos tradicionais orientados a pedidos e respostas, onde uma aplicação tem de solicitar a informação específica de que necessita a outra e aguardar uma resposta antes de passar para a tarefa seguinte. Além disso, devido à natureza desacoplada da arquitetura orientada a eventos, é amplamente considerado uma boa prática para a comunicação entre microserviços.

Casos de utilização e exemplos do mundo real

A arquitetura orientada a eventos impulsiona as experiências digitais modernas em vários setores, desde a banca e o retalho até à indústria e à logística. Ao permitir a automação baseada em IA, inteligência de eventos e capacidade de resposta em tempo real, a arquitetura orientada por eventos ajuda as organizações a modernizar as TI, desacoplar sistemas legados e operar de forma integrada em ambientes multi-cloud.

Os exemplos seguintes mostram como a arquitetura orientada a eventos funciona na prática.

Indústria da restauração

  1. Um estudante universitário faz um pedido de pizza através de uma aplicação de entrega de comida. A aplicação recolhe as suas informações básicas—nome, morada, dados de pagamento e encomenda—e publica o evento “encomenda de pizza”.
  2. O restaurante de pizza subscreve o evento, processa a encomenda e publica o seu próprio evento de “encomenda pronta” de volta para o serviço de entrega de comida.
  3. O serviço então atribui um estafeta de entregas, agenda uma hora prevista de chegada e avisa o cliente de que a sua pizza está a caminho.

E-commerce

  1. Uma compradora online introduz os dados do seu cartão de crédito num site de comércio eletrónico, que publica o evento “pagamento submetido”.
  2. O sistema de pagamentos subscreve o evento, processa o pagamento e emite o seu próprio evento de “pagamento processado” indicando sucesso ou falha, e encaminha-o de volta para a interface do utilizador do site.
  3. A interface de utilizador mostra o estado do pagamento ao cliente e indica os próximos passos.

Alguns outros exemplos de arquitetura orientada a eventos incluem:

Telemetria IoT

Análise e inteligência de eventos

Automatização

Transações financeiras

Cadeia logística

Modernização de TI e desacoplamento de sistemas legados

Notificações

Os casos de utilização gerais da arquitetura orientada por eventos incluem:

Vantagens da arquitetura orientada a eventos

As organizações podem aplicar as vantagens da arquitetura orientada a eventos aos seus sistemas modernos. Os principais benefícios da arquitetura orientada a eventos incluem:

  1. Capacidade de resposta em tempo real e fluxos de trabalho inteligentes: A arquitetura orientada a eventos permite que os sistemas reajam instantaneamente aos eventos à medida que ocorrem, desencadeando fluxos de trabalho e decisões automatizadas em tempo real. Isto é especialmente crítico durante períodos de maior procura—por exemplo, durante grandes eventos de vendas ou feriados. As organizações podem aplicar esta capacidade de resposta às operações diárias, melhorando tudo, desde a automatização da cadeia de abastecimento e deteção de fraude até ao envolvimento personalizado dos clientes.
  2. Velocidade e eficiência através da comunicação assíncrona: As aplicações numa arquitetura orientada a eventos comunicam de forma assíncrona, o que significa que os produtores publicam mensagens de eventos sem esperar que os consumidores as recebam. Esta abordagem não bloqueante melhora o desempenho, reduz a latência e permite que os sistemas processem volumes massivos de eventos sem estrangulamentos.
  3. Flexibilidade e escalabilidade através do desacoplamento e do acoplamento fraco: Os componentes numa arquitetura orientada a eventos estão desacoplados ou fracamente acoplados, pelo que funcionam de forma independente, sem depender da disponibilidade ou da lógica interna uns dos outros. Isto facilita a atualização, o teste e a implementação de serviços sem interromper todo o sistema. A dissociação também facilita a adição de produtores e consumidores extra conforme necessário, permitindo uma escalabilidade perfeita à medida que as necessidades do negócio crescem.
  4. Resiliência e isolamento de falhas: Com serviços desacoplados, as falhas num componente não se propagam por todo o sistema. Cada serviço pode falhar de forma independente, tornando a arquitetura mais duradoura e tolerante a falhas do que os modelos tradicionais fortemente acoplados.
  5. Integração preparada para o futuro: O acoplamento flexível e o design assíncrono tornam a arquitetura orientada a eventos ideal para a modernização de TI, desacoplamento de sistemas legados e operações multi-nuvem. As organizações ganham flexibilidade para integrar novas tecnologias—como automação baseada em IA e inteligência de eventos—sem reescrever os sistemas principais.

Desafios, limitações e melhores práticas

Embora as arquiteturas orientadas por eventos ofereçam vantagens poderosas, também introduzem novos desafios de design e operacionais para os quais as organizações devem estar preparadas. Ao implementar uma arquitetura orientada por eventos, considere os seguintes desafios, limitações e boas práticas desta arquitetura para garantir sistemas orientados por eventos escaláveis, resilientes e bem governados.

Desafios

Como o event mesh se enquadra

A malha de eventos é uma capacidade arquitetónica que liga múltiplos brokers de eventos através de diferentes hyperscalers e em ambientes privados, híbridos e multi-cloud. A malha de eventos oferece um conjunto completo de serviços avançados de eventos, incluindo transmissão de eventos, gestão de eventos, monitorização, encaminhamento dinâmico de mensagens e filtragem detalhada. Ao ligar corretores de eventos numa malha distribuída, as organizações podem:

Como a espinha dorsal dos sistemas modernos, a malha de eventos é uma camada fundamental para arquiteturas escaláveis e em tempo real baseadas em eventos. Ajuda a garantir a capacidade de resposta em tempo real, ao mesmo tempo que simplifica a integração, reduz o caos de eventos e reforça as capacidades de resolução de problemas em ambientes distribuídos.

Limitações da arquitetura orientada a eventos

Boas práticas de arquitetura orientada a eventos

Características da arquitetura orientada a eventos

Na sua essência, a arquitetura orientada por eventos baseia-se em várias características definidoras que a tornam ideal para ambientes distribuídos, híbridos e multi-nuvem.

Em conjunto, estas características tornam a arquitetura orientada a eventos uma abordagem poderosa para construir sistemas em tempo real, resilientes, adaptáveis e preparados para o crescimento—quer esteja a suportar microserviços, a integrar ambientes cloud ou a permitir aplicações de processos de negócio orientados a eventos.

Perguntas frequentes

O que é um evento numa arquitetura orientada a eventos?
Numa arquitetura orientada a eventos, um evento é uma alteração significativa no estado de um processo de negócio ou sistema, como a criação, atualização ou conclusão de uma entidade. Os eventos são sinais emitidos por aplicações quando algo importante acontece, para que outros sistemas possam ser notificados em tempo real e reagir sem um acoplamento apertado. Exemplos de eventos incluem quando o pagamento de um cliente é bem-sucedido ou falha, uma encomenda chega ou sai de um armazém, e um sensor de máquina deteta um aumento de temperatura.
Como é que a arquitetura orientada a eventos difere da orientada a pedidos?

A principal diferença entre arquiteturas orientadas a eventos e orientadas a pedidos é a forma como os sistemas comunicam e reagem às mudanças. Num modelo orientado por pedidos, a interação começa quando um consumidor solicita dados ou uma ação a um servidor, e o servidor responde. Este modelo é normalmente síncrono—o que significa que o requisitante espera (bloqueia) até que a resposta chegue—e é baseado em pull, ou seja, as aplicações só recebem atualizações quando as solicitam.

Num modelo orientado por eventos, a interação começa quando ocorre um evento—uma alteração significativa de estado num sistema empresarial—e as aplicações reagem automaticamente. Os sistemas orientados por eventos são assíncronos, por isso os produtores publicam eventos sem esperar que um consumidor responda. Este modelo baseado em push e fracamente acoplado permite que as aplicações funcionem de forma independente e processem eventos em tempo real em ambientes distribuídos, híbridos e multi‑cloud.

Quais são os principais componentes da arquitetura orientada a eventos?

Os principais componentes da arquitetura orientada a eventos são produtores, consumidores, corretores de eventos e canais de eventos. Em conjunto, estes componentes criam um fluxo de eventos assíncrono e fracamente acoplado que permite interações em tempo real e escaláveis em ambientes distribuídos, híbridos e multi-nuvem:

  • Produtores: Aplicações que geram ou capturam eventos—como atualizações de encomendas, pagamentos e leituras de sensores—e os publicam no sistema orientado a eventos
  • Consumidores: Subscrevem, processam e reagem a eventos ao desencadear fluxos de trabalho, atualizar dados, enviar notificações ou iniciar processos subsequentes
  • Corretoras de eventos: Middleware de mensagens que encaminha eventos de produtores para consumidores, oferecendo funcionalidades como entrega fiável, filtragem, encaminhamento dinâmico, persistência e reprodução
  • Canais de eventos: Vias que o corretor de eventos gere e que ligam produtores e consumidores: os produtores publicam eventos num canal e os consumidores subscrevem os canais que lhes são relevantes
Quais são os padrões comuns de arquitetura orientada a eventos?

Os padrões de arquitetura orientada a eventos são abordagens de design reutilizáveis que definem como os eventos são captados, encaminhados, armazenados e consumidos num sistema orientado a eventos. Os principais padrões de arquitetura orientada a eventos são:

  • Publicação/subscrição (pub/sub): Os produtores publicam eventos num canal, e vários consumidores subscrevem e reagem automaticamente.
  • Transmissão de eventos: Os produtores publicam fluxos contínuos de eventos para um intermediário, e os consumidores podem ler, reproduzir ou processar esses eventos em qualquer ponto do fluxo.
  • Segregação de responsabilidade de consulta e comando (CQRS): As operações de leitura e escrita são separadas em modelos diferentes para propagar atualizações de forma assíncrona.
  • Event sourcing: Os sistemas armazenam cada alteração de estado como um evento imutável num registo apenas de anexação e depois reconstruem o estado atual ao reproduzir os eventos.
Quais são os benefícios de utilizar uma arquitetura orientada a eventos?

Principais benefícios da utilização de uma arquitetura orientada a eventos incluem:

  • Acoplamento frouxo: As aplicações funcionam de forma independente, sem conhecer os detalhes internos umas das outras, permitindo atualizações, integrações e extensões mais fáceis.
  • Escalabilidade: Novos produtores e consumidores podem ser adicionados facilmente, e as cargas de trabalho escalam em ambientes híbridos e multi-nuvem.
  • Resiliência: Serviços desacoplados isolam falhas, permitindo que um componente falhe sem afetar todo o sistema.
  • Velocidade e capacidade de resposta em tempo real: A comunicação assíncrona e não bloqueante permite que os sistemas reajam instantaneamente a eventos de negócio e processem grandes volumes com baixa latência.