O que é arquitetura baseada em eventos?
A arquitetura baseada em eventos (EDA) é um modelo de integração que detecta "eventos" importantes em um negócio – como uma transação ou um carrinho de compras abandonado – e age sobre eles em tempo real.
Visão geral sobre a arquitetura baseada em eventos
Quase todos os eventos em uma empresa têm prazo limitado. Quando um cliente realiza uma compra online, um sensor identifica uma falha possível, uma queda no preço de estoque ou uma violação de segurança, que requerem ação imediata. É aí que entra a arquitetura baseada em eventos (EDA, Event-driven architecture). Uma EDA pode gerar e detectar eventos, além de responder a eles à medida que acontecem, ajudando as empresas a melhorar todos os seus processos, da experiência do cliente à eficiência e agilidade operacional.
O que é um evento?
Primeiro, o essencial. Um evento é qualquer ação ou mudança de estado importante para a empresa. Por exemplo, quando alguém usa um cartão de crédito, faz check-in para um voo, redefine uma senha – ou quando um estoque é atualizado no depósito. Os eventos acontecem o tempo todo, em todas as organizações de todos os setores. Empresas que baseiam suas ações em eventos podem registrá-los e reagir a eles à medida que acontecem.
O que é arquitetura baseada em eventos?
Uma arquitetura baseada em eventos (EDA) é um modelo de integração desenvolvido para publicar, registrar e processar eventos que acontecem em diferentes sistemas em tempo real, bem como para responder a eles. Quando um evento ocorre em um aplicativo, uma mensagem é enviada automaticamente para todos os outros aplicativos que precisam dessa informação para que eles possam, por sua vez, executar o que for necessário.
As arquiteturas baseadas em eventos são desacopladas. Isto significa que os aplicativos não precisam ter conhecimento sobre os outros para compartilhar informações e concluir as tarefas. Informações do evento, ou mensagens, podem fluir de modo livre e automático entre os aplicativos. Como resultado, o modelo EDA é muito mais rápido do que o modelo tradicional de solicitação/resposta, em que um aplicativo precisa obter informações específicas de outro e esperar por uma resposta antes de passar à próxima etapa. Também devido à natureza desacoplada da EDA, ela é considerada uma das melhores práticas para a comunicação de microsserviços.
Como a EDA funciona?
Em uma arquitetura baseada em eventos, os aplicativos agem como produtores de eventos (aplicativos que produzem ou registram eventos), ou como consumidores de eventos (aplicativos que processam e executam ações relacionadas aos eventos). Os produtores transmitem os eventos aos consumidores por meio de um broker, ou seja, um middleware baseado em mensagens, em tempo real. Os consumidores, então, passam a processar o evento e disparam outras ações, fluxos de trabalho ou seus próprios eventos.
Em uma arquitetura bem simples – quando há um único produtor e um único consumidor em comunicação direta um com o outro – os brokers são opcionais. Contudo, na maioria das empresas há várias fontes enviando eventos a múltiplos consumidores. Por isso, é necessário contar com um broker, ou mesmo com uma rede de brokers (também conhecida como "malha de eventos"). Quando um broker ou uma malha de eventos é usada, isso cria um "acoplamento livre"de aplicativos.
Padrões de arquitetura baseada em eventos
Há dois padrões principais para a transmissão de eventos em uma arquitetura baseada em eventos: publicação/assinatura e streaming de eventos.
Publicação/assinatura (ou “pub/sub”) – Com o pub/sub, os consumidores de eventos fazem uma assinatura das mensagens e canais publicados pelos produtores de eventos. Quando um evento é publicado, o broker o envia diretamente a todos os assinantes. Para evitar a duplicação, os eventos não podem ser reproduzidos ou acessados depois de consumidos – eles são excluídos pelo broker.
Streaming de eventos – Com o streaming de eventos, os produtores publicam fluxos inteiros de eventos para um broker. Os consumidores assinam o fluxo e podem conferir qualquer parte, consumindo apenas os eventos relevantes para eles. Com esse padrão, os eventos são retidos pelo broker mesmo depois de consumidos.
Três abordagens para o processamento de eventos
Há três abordagens diferentes para o processamento de eventos quando eles chegam a um consumidor: processamento simples de eventos, processamento complexo de eventos e processamento de streaming de eventos.
- Processamento simples de eventos: os consumidores processam cada evento à medida que é recebido.
- Processamento complexo de eventos: os consumidores processam uma série de eventos para detectar padrões e desempenhar ações com base no resultado.
- Processamento de streaming de eventos: os consumidores processam um fluxo constante de dados (dados em movimento) em tempo real e agem sobre eles por meio de uma plataforma de streaming de dados.
As empresas escolhem seus modelos de processamento de eventos a partir de suas necessidades e casos de uso individuais.
Casos de uso e exemplos de arquitetura baseada em eventos
Há diversos casos de uso para arquiteturas baseadas em eventos em cada setor – do setor bancário ao varejo. Vamos ver um exemplo do setor de restaurantes:
Um estudante universitário pede uma pizza em um aplicativo de entrega de refeições, como o Uber Eats. O aplicativo registra os dados básicos do estudante (nome, endereço, dados de pagamento e pedido) e publica um evento "pedido de pizza".
A pizzaria assina o evento, processa o pedido e publica seu próprio evento "pedido pronto" de volta no aplicativo do serviço de entrega.
O serviço localiza um entregador, programa um tempo estimado de entrega e alerta o cliente que a pizza está a caminho.
Um exemplo de EDA para e-commerce:
Um comprador online insere os dados de seu cartão de crédito no site de e-commerce, que publica um evento de "pagamento enviado".
O sistema de pagamento assina o evento, processa o pagamento e emite seu próprio evento de "pagamento processado" com status de sucesso ou erro – depois, retorna o evento à IU do website.
A IU mostra o status do pagamento ao cliente e indica os próximos passos.
Outros exemplos de EDA são:
Quando um comprador online clica em um produto e o sistema responde gerando recomendações de produtos baseadas em itens similares.
Quando um cliente deposita um cheque no banco e o sistema automaticamente publica o depósito na conta do cliente.
Quando um varejista examina transações globais em busca de fraudes e alerta sobre compras suspeitas para a operadora do cartão de crédito.
Quando um fabricante monitora o streaming de dados de IoT de seus equipamentos e recebe um alerta sobre possíveis problemas ou falhas de manutenção.
Vantagens da arquitetura baseada em eventos
Há muitas vantagens em uma arquitetura baseada em eventos. As três principais são:
- Respostas e fluxos de trabalho em tempo real. Uma EDA pode monitorar e reagir rapidamente a eventos à medida que eles acontecem, usando com frequência a automação robótica de processos (RPA) para acelerar os fluxos de trabalho e acionar os próximos passos em tempo real. Isso tem uma importância ainda mais essencial em picos de demanda – por exemplo, durante grandes eventos de vendas ou períodos sazonais. Essa capacidade de resposta também pode ser aplicada a fluxos de trabalho cotidianos (fora do pico), melhorando todos os processos, da automação da cadeia de suprimentos à detecção de fraudes.
- Mensagens assíncronas. Os aplicativos em uma EDA se comunicam de forma assíncrona – isto significa que produtores publicam mensagens de eventos sem esperar que os consumidores as recebam. Além de permitir que os aplicativos passem às próximas tarefas, isso também simplifica a integração.
- Desacoplamento e acoplamento livre. Os aplicativos em uma EDA são desacoplados ou acoplados livremente, e não dependem da disponibilidade uns dos outros. Eles podem ser atualizados, testados e implementados separadamente. Eles também podem falhar isoladamente – por isso, a arquitetura é mais durável e persistente do que modelos tradicionais. O desacoplamento também facilita adicionar produtores e consumidores, eliminando a necessidade de reescrever o código sempre que uma mudança acontece.
Conclusão
A malha de eventos oferece opções de implantação em diferentes hyperscalers e em ambientes de nuvem privada. Ela pode ser configurada para criar uma malha distribuída de brokers de eventos implantados em diversos ambientes em nuvens públicas e privadas. A malha de eventos oferece um conjunto completo de serviços de eventos, incluindo streaming, gestão e monitoramento e recursos avançados como roteamento de mensagens dinâmicas e filtros refinados.
Conheça os recursos de malha de eventos da SAP
Potencialize seus aplicativos com a arquitetura baseada em eventos do SAP Integration Suite.
Ideias que você não encontrará em nenhum outro lugar
Inscreva-se para receber uma dose de business intelligence diretamente em sua caixa de entrada.