O que é uma arquitetura orientada por eventos?

Sistemas desacoplados que são executados em resposta a eventos

Uma arquitetura orientada por eventos usa eventos para acionamento e comunicação entre serviços desacoplados e é comum em aplicações modernas criadas com microsserviços. Um evento é uma mudança ou uma atualização no estado, como um item adicionado a um carrinho de compras em um site de comércio eletrônico. Eventos podem conter o estado (o item comprado, o preço ou um endereço de entrega) ou podem ser identificadores (uma notificação de que um pedido foi despachado, por exemplo).

As arquiteturas orientadas por eventos têm três componentes: os produtores, os roteadores e os consumidores de eventos. Um produtor publica o evento no roteador, que filtra e envia os eventos aos consumidores. Serviços produtores e serviços consumidores são dissociados, o que permite que sejam escalados, atualizados e implantados de forma independente.

Vídeo explicativo de arquiteturas orientadas por eventos (1:11)

Para uma análise mais profunda, confira nossa série de palestras técnicas online da AWS sobre Como usar o Amazon EventBridge para criar arquiteturas dissociadas e orientadas por eventos. Aprenda os conceitos básicos de arquiteturas orientadas por eventos e comece a usar o Amazon EventBridge, incluindo a criação de um barramento de eventos, a configuração de fontes de eventos de SaaS e muito mais.

Benefícios de uma arquitetura orientada por eventos

Escalabilidade e falha de maneira independentemente

Com o desacoplamento dos serviços, eles reconhecem apenas o roteador de eventos, e não uns aos outros. Isso significa que, mesmo que sejam interoperáveis, se um serviço apresentar uma falha, os serviços restantes continuarão em execução. O roteador de eventos atua como um buffer elástico que acomoda picos em workloads.

Desenvolvimento com agilidade

Você não precisa mais escrever código personalizado para pesquisar, filtrar e rotear eventos: o roteador de eventos filtrará e enviará eventos automaticamente aos consumidores. O roteador também elimina a necessidade de coordenação pesada entre serviços produtores e consumidores, acelerando assim o seu processo de desenvolvimento.

Auditoria com facilidade

Um roteador de eventos atua como um local centralizado para auditar sua aplicação e definir políticas. Essas políticas podem restringir quem é capaz de publicar e assinar um roteador e controlam quais usuários e recursos têm permissão para acessar seus dados. Você também pode criptografar seus eventos em trânsito e em repouso.

Redução dos custos

Arquiteturas orientadas por eventos são baseadas em push e, portanto, tudo acontece sob demanda à medida que o evento se apresenta no roteador. Dessa forma, você não paga por pesquisas contínuas para verificar a presença de um evento. Isso significa menor consumo de largura de banda da rede, menos utilização de CPU, menos capacidade ociosa da frota e menos handshakes Secure Sockets Layer (SSL)/Transport Layer Security (TLS).

Como funciona: arquitetura de exemplo

Veja um exemplo de uma arquitetura orientada por eventos para um site de comércio eletrônico. Essa arquitetura permite que o site reaja a alterações de uma variedade de fontes durante períodos de pico de demanda, sem travar a aplicação nem provisionar recursos em excesso.

Quando usar essa arquitetura

Replicação de dados entre contas e regiões

Você pode usar uma arquitetura orientada por eventos para coordenar sistemas entre equipes que operam e implantam em diferentes contas e regiões. Ao usar um roteador de eventos para transferir dados entre sistemas, você pode desenvolver, escalar e implantar serviços independentemente de outras equipes.

Monitoramento e geração de alertas de estados de recursos

Em vez de conferir continuamente seus recursos, você pode usar uma arquitetura orientada por eventos para monitorar e receber alertas sobre anomalias, alterações e atualizações. Esses recursos podem incluir buckets de armazenamento, tabelas de banco de dados, funções sem servidor, nós de computação e muito mais.

Distribuição e processamento paralelo

Se você tem muitos sistemas que precisam operar em resposta a um evento, pode usar uma arquitetura orientada por eventos para distribuir o evento sem precisar escrever um código personalizado para envio por push a cada consumidor. O roteador enviará o evento por push para os sistemas, e cada um poderá processar esse evento em paralelo com uma finalidade diferente.

Integração de sistemas heterogêneos

Se você tem sistemas em execução em pilhas diferentes, pode usar uma arquitetura orientada por eventos para compartilhar informações entre eles sem acoplamento. O roteador de eventos estabelece caminhos indiretos e interoperabilidade entre os sistemas, para que eles possam trocar mensagens e dados ao mesmo tempo que permanecem independentes.


Você deve usar uma arquitetura orientada por eventos?

Arquiteturas orientadas por eventos são ideais para aumentar a agilidade e a mobilidade. Geralmente, elas se encontram em aplicações modernas que usam microsserviços ou em qualquer aplicação que tenha componentes desacoplados. Para adotar uma arquitetura orientada por eventos, talvez seja necessário repensar de que maneira você visualiza o design da aplicação. Para se preparar para o sucesso, considere o seguinte:

• A durabilidade da sua fonte de eventos. Sua fonte de eventos deve ser confiável e garantir a distribuição caso você precise processar cada um dos eventos. 

• Seus requisitos de controle de performance. Sua aplicação deve ser capaz de lidar com a natureza assíncrona dos roteadores de eventos. 

• O acompanhamento do seu fluxo de eventos. Os caminhos indiretos introduzidos por uma arquitetura orientada por eventos permitem o acompanhamento dinâmico por meio de serviços de monitoramento, mas não o acompanhamento estático por meio de análises de código. 

• Os dados na sua fonte de eventos. Se você precisar reconstruir o estado, será necessário desduplicar e ordenar sua fonte de eventos.

Baixe o Guia de arquiteturas orientadas por eventos da AWS »

Por onde começar

Existem dois tipos principais de roteadores usados em arquiteturas orientadas por eventos: barramentos de eventos e tópicos de eventos. A AWS oferece o Amazon EventBridge para a criação de barramentos de eventos e o Amazon Simple Notification Service (SNS) para a criação de tópicos de eventos.

O Amazon EventBridge é recomendado quando você quer criar uma aplicação que reage a eventos de aplicações SaaS, serviços da AWS ou aplicações personalizadas. O EventBridge usa um esquema predefinido para eventos e permite criar regras que são aplicadas em todo o corpo do evento para filtragem antes do seu envio aos consumidores.

O Amazon SNS é recomendado quando você deseja criar uma aplicação que reage a eventos de alto throughput e baixa latência publicados por outras aplicações, microsserviços ou serviços da AWS, ou para aplicações que necessitam de distribuição muito alta (milhares ou milhões de endpoints). Os tópicos do SNS são independentes do esquema de eventos de entrada.

Cadastre-se para obter uma conta gratuita

Obtenha acesso instantâneo ao nível gratuito da AWS. 

Cadastrar-se