O que é arquitetura baseada em eventos?
O modelo de integração de arquitetura baseada em eventos detecta "eventos" importantes em tempo real e age em relação a eles.
default
{}
default
{}
primary
default
{}
secondary
Definição de arquitetura baseada em eventos e por que ela é importante
Arquitetura baseada em eventos é uma abordagem ao design de software que permite às empresas reagirem em tempo real a qualquer mudança significativa nas condições. Imagine ser capaz de reagir assim que algo importante acontece, como um cliente fazendo compras online, um sensor sinalizando uma falha iminente, uma queda no preço das ações ou o disparo de um alerta de segurança. Essas mudanças – chamadas de eventos – acontecem o tempo todo, em todas as organizações e em todos os setores. O sucesso depende da rapidez da resposta aos eventos.
É aí que entra em cena a EDA (arquitetura baseada em eventos). Em vez de esperar por atualizações programadas ou depender de sistemas rígidos e fortemente conectados, a arquitetura baseada em eventos permite que os aplicativos se comuniquem de maneira assíncrona por meio de componentes acoplados com flexibilidade. Ou seja, cada parte do sistema pode agir independentemente – sem conhecer o funcionamento interno das outras partes – melhorando a escalabilidade, a adaptabilidade e a inovação.
Como resultado, os sistemas modernos que usam arquitetura baseada em eventos permitem que as empresas proporcionem experiências mais rápidas e personalizadas, automatizem operações e permaneçam ágeis mesmo com o crescimento das demandas e dos volumes de dados. Ao adotar a arquitetura baseada em eventos, as organizações passam de reativas a proativas, alcançando a velocidade, a flexibilidade e a resiliência necessárias para prosperar no dinâmico mundo digital.
O que é um evento?
Evento é qualquer ação ou mudança que afete a empresa – por exemplo, quando um cliente passa um cartão de crédito, um passageiro faz o check-in para um voo, um usuário redefine a senha ou um depósito atualiza o estoque. Pense nisso da seguinte forma: um evento é uma mensagem sucinta 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 aos eventos à medida que ocorrem – o que acontece o tempo todo. Alguns exemplos comuns de eventos incluem:
- Pagamento aprovado ou recusado
- Login ou logout de usuário
- O estoque cai abaixo de um limite definido
- Uma remessa sai do depósito ou chega ao destino
- Uma violação de segurança dispara um alerta
- Um programa de fidelidade atualiza os saldos de pontos
- A equipe de suporte cria um chamado
- Um cliente atualiza o endereço de entrega
- Um novo usuário cria uma conta
- Um consumidor envia uma avaliação de produto
- Um assinante renova ou cancela uma assinatura
Componentes centrais da arquitetura baseada em eventos
Para manter a consistência, os esquemas de eventos definem o formato e a estrutura do evento, incluindo os campos que o evento contém, os tipos de dados e as regras para interpretação.
Na arquitetura baseada em eventos, os aplicativos funcionam como produtores de eventos – que geram ou capturam eventos – ou como consumidores de eventos – que processam e agem de acordo com os eventos. Os produtores transmitem eventos aos consumidores em tempo real por meio de um broker de eventos, que é um middleware baseado em mensagens. Em seguida, os consumidores podem processar o evento e desencadear outras ações, workflows ou seus próprios eventos. Esse design permite responder em tempo real e tomar decisões mais inteligentes à medida que os dados são recebidos.
O broker de eventos gerencia os canais de eventos que conectam produtores a consumidores, garante entrega confiável e, muitas vezes, fornece recursos como filtragem, persistência e reprodução. Ao separar produtores e consumidores, o broker de eventos torna o sistema mais resiliente e escalável.
Em uma arquitetura bem simples – com um único produtor e um único consumidor em comunicação direta entre si – os brokers são opcionais. Contudo, na maioria das empresas, há várias fontes que enviam eventos a diversos 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, os aplicativos passam a ser acoplados de maneira flexível.
Comunicação síncrona versus assíncrona
Com a comunicação síncrona na arquitetura baseada em eventos, o produtor de eventos espera que o receptor processe e responda antes de continuar. Um exemplo disso é quando um web client envia uma solicitação HTTP e espera pela resposta do servidor. Em geral, a comunicação síncrona é fortemente acoplada e mais lenta sob cargas pesadas, e faz com que o produtor só possa executar sua próxima tarefa quando receber resposta do consumidor.
Na arquitetura baseada em eventos, a comunicação assíncrona permite que o produtor continue o processamento sem ter que aguardar uma resposta imediata, e o consumidor do evento pode processar a mensagem posteriormente. Um exemplo disso é quando o sistema publica um evento para um broker e os consumidores o processam de modo independente. A comunicação assíncrona não bloqueia a comunicação, é escalável e acoplada de maneira flexível, o que a torna ideal para sistemas distribuídos e em tempo real.
Modelo baseado em solicitações versus modelo baseado em eventos na EDA
Em um modelo baseado em solicitações, a interação começa com a solicitação de um consumidor de eventos para o servidor que a responde. Esse modelo é baseado em solicitações – ou seja, um consumidor solicita dados ou serviços do servidor ativamente quando precisa deles, em vez de receber atualizações automáticas – e pode ser síncrono ou assíncrono. Os modelos baseados em solicitações são comuns em APIs e aplicativos web tradicionais.
Em um modelo baseado em eventos, a interação começa com um evento – uma mudança de status ou ação que desencadeia o processamento – e os componentes reagem automaticamente quando os eventos ocorrem – por exemplo, publicação/assinatura. Esse modelo é caracteristicamente baseado em push – ou seja, o sistema envia ("push") eventos ou atualizações automaticamente aos consumidores assim que ocorrem, sem esperar que o consumidor os solicite. Os modelos baseados em eventos são assíncronos, desacoplados e ideais para resposta em tempo real.
Considere estas principais diferenças entre os modelos: naqueles baseados em solicitações, os usuários solicitam dados quando precisam deles; já nos modelos baseados em eventos, a reação é automática quando algo acontece.
Padrões comuns da arquitetura baseada em eventos
Padrões da arquitetura baseada em eventos são abordagens comuns de design que definem como o sistema baseado em eventos captura, processa e consome eventos. Os padrões fornecem estratégias reutilizáveis para processar mudanças na comunicação e no status de maneira escalável e desacoplada. As organizações aplicam padrões de arquitetura baseada em eventos durante o design e a implementação do sistema para superar desafios comuns, como distribuição de eventos, consistência dos dados e escalabilidade em ambientes assíncronos e acoplados de maneira flexível.
Há quatro padrões principais para transmitir eventos na arquitetura baseada em eventos:
- Publicação/assinatura (ou "pub/sub"): com o padrão pub/sub, os consumidores de eventos se inscrevem para ter acesso a mensagens e canais publicados pelos produtores de eventos. Quando publicado, o evento é enviado diretamente a todos os assinantes por meio de um broker de eventos. Para evitar duplicação, os eventos não podem ser reproduzidos nem acessados depois de consumidos, pois 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 dele, consumindo apenas os eventos que lhes interessam. Com o streaming, os eventos são retidos pelo broker mesmo depois de consumidos.
- CQRS (segregação de responsabilidades de comando e consulta): com o padrão CQRS, a camada de design e arquitetura do aplicativo separa as operações de leitura e gravação em modelos diferentes. Os comandos atualizam o status, enquanto as consultas o leem. Na arquitetura baseada em eventos, o padrão CQRS geralmente trabalha com eventos para propagar alterações de maneira assíncrona, melhorando a escalabilidade e o desempenho de sistemas complexos.
- Sourcing de eventos: com o sourcing de eventos, o sistema registra cada mudança de status como um evento em um log append-only (apenas acréscimo), em vez de armazenar apenas o status atual de uma entidade. O status atual pode ser reconstruído por meio da reprodução desses eventos. Esse padrão de arquitetura fornece uma trilha de auditoria completa e oferece suporte a cenários de "viagem no tempo" e recuperação.
Estilos de processamento de eventos
Os estilos de processamento de eventos descrevem como o sistema detecta, interpreta e age em relação aos eventos. Eles definem a complexidade da lógica, a periodicidade e as relações entre os eventos que o sistema entende. Há três abordagens diferentes para processar os eventos quando eles chegam a um consumidor: processamento simples, processamento complexo e processamento de streaming de eventos.
1. Processamento simples de eventos: os consumidores processam cada evento assim que o recebem. Exemplos:
- Quando o cliente faz um pedido, o sistema envia um e-mail de confirmação e atualiza o estoque.
- Uma solicitação de redefinição de senha aciona o envio imediato de um e-mail com um link seguro.
- Após o pagamento concluído com sucesso, um recibo é gerado e enviado ao cliente.
- Um login de usuário é registrado instantaneamente para rastreamento de segurança.
2. Processamento complexo de eventos: os consumidores processam uma série de eventos para detectar padrões e desempenhar ações com base no resultado. Exemplos:
- Várias transações de alto valor realizadas sucessiva e rapidamente acionam um alerta de fraude.
- O aumento da temperatura combinado com o aumento da vibração sinaliza uma falha iminente no equipamento.
- Tentativas de login provenientes de diferentes países em um intervalo de poucos minutos acionam um alerta de segurança.
- Quando um mesmo usuário abandona o carrinho repetidas vezes, o sistema gera e envia uma oferta de desconto personalizada.
3. Processamento de streaming de eventos: os consumidores processam um fluxo constante de dados (dados em movimento) em tempo real e agem em relação a eles por meio de uma plataforma de streaming de dados. Exemplos:
- Flutuações nos preços das ações impulsionam a execução instantânea de negociações com base em regras predefinidas.
- Um aumento repentino das menções nas redes sociais atualiza os dashboards de opinião em tempo real.
- A telemetria de veículos conectados ajusta os sinais de tráfego dinamicamente.
- Os dados de sequência de cliques de um site de e-commerce impulsionam recomendações de produtos em tempo real.
As empresas escolhem o estilo de processamento de eventos com base em suas necessidades e casos de uso específicos.
Como funciona a arquitetura baseada em eventos
Uma arquitetura baseada em eventos é um modelo de integração desenvolvido para publicar, capturar, processar e responder em tempo real a eventos em sistemas distribuídos. 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.
Veja a seguir, passo a passo, como funciona a arquitetura baseada em eventos:
- Um evento ocorre: acontece uma mudança significativa no status – por exemplo, um cliente faz um pedido, um sensor detecta um pico de temperatura ou surge uma falha no pagamento.
- O produtor emite um evento: o aplicativo no qual o evento ocorreu atua como produtor e publica o evento para um broker de eventos.
- O broker encaminha o evento: o broker atua como intermediário para gerenciar os canais e entregar o evento a todos os consumidores interessados, o que ajuda a garantir comunicação confiável, escalável e desacoplada.
- Os consumidores reagem ao evento: os aplicativos ou serviços inscritos no canal processam o evento e tomam as medidas adequadas, como atualizar o estoque, enviar um e-mail de confirmação ou acionar um alerta.
As arquiteturas baseadas em eventos são assíncronas e desacopladas, ou seja, os aplicativos não precisam estar cientes uns dos outros para compartilhar informações e realizar tarefas em tempo real. As informações do evento, ou mensagens, podem fluir de modo livre e automático entre os aplicativos. Como resultado, o modelo de arquitetura baseada em eventos é muito mais rápido e resiliente do que os modelos tradicionais baseados em solicitações e em respostas, nos quais um aplicativo precisa obter informações específicas de outro aplicativo e esperar por uma resposta antes de prosseguir para a próxima tarefa. Além disso, devido à sua natureza desacoplada, a arquitetura baseada em eventos é considerada uma das melhores práticas para a comunicação de microsserviços.
Casos de uso e exemplos reais
A arquitetura baseada em eventos impulsiona experiências digitais modernas em todos os setores – dos serviços bancários e varejo à produção e logística. Ao possibilitar a automação orientada por IA, a inteligência de eventos e a capacidade de resposta em tempo real, a arquitetura baseada em eventos ajuda as organizações a modernizar a área de TI da empresa, desacoplar sistemas antigos e operar perfeitamente em ambientes multinuvem.
Os exemplos a seguir mostram como a arquitetura baseada em eventos funciona na prática.
Setor de restaurantes
- Um estudante universitário usa um aplicativo de entrega de refeições para pedir uma pizza. O aplicativo registra os dados básicos do estudante – nome, endereço, dados de pagamento e pedido – e publica o evento "pedido de pizza".
- A pizzaria assina o evento, executa o pedido e publica seu próprio evento "pedido pronto" de volta no aplicativo de serviço de entrega.
- O serviço aloca um entregador, programa um tempo estimado de entrega e avisa ao cliente que a pizza está a caminho.
E-commerce
- Uma compradora online insere os dados de seu cartão de crédito no site de e-commerce, que publica o evento "pagamento enviado".
- O sistema de pagamento assina o evento, processa o pagamento e emite seu próprio evento, "pagamento processado", com status de sucesso ou erro; em seguida, retorna o evento à IU do site.
- A IU mostra o status do pagamento ao cliente e indica os próximos passos.
Outros exemplos de arquitetura baseada em eventos incluem:
Telemetria de IoT
- Uma fábrica inteligente transmite dados de sensores para detectar picos de temperatura e evitar falhas nos equipamentos.
- Veículos conectados enviam dados de telemetria para otimizar o fluxo de tráfego dinamicamente.
- Eletrodomésticos inteligentes publicam eventos de consumo de energia para acionar recomendações de redução de custos.
Funções analíticas e inteligência de eventos
- Um varejista analisa dados de sequência de cliques em tempo real para personalizar recomendações de produtos.
- Um banco monitora os padrões de transação para detectar fraudes antes que aconteçam.
- Uma empresa de logística usa dados de streaming para prever atrasos nas entregas e redirecionar as remessas.
Automação
- Um sistema de RH provisiona automaticamente o acesso ao software para um novo colaborador, incluindo a atribuição de licenças e permissões.
- Um sistema de saúde aciona alertas automáticos quando os sinais vitais do paciente ultrapassam limites críticos.
- Uma plataforma em nuvem escala recursos dinamicamente com base em eventos de carga de trabalho.
Transações financeiras
- Um gateway de pagamentos publica o evento "pagamento enviado", acionando verificações de fraude antes da aprovação.
- Uma plataforma de negociação executa ordens de compra/venda instantaneamente conforme os preços das ações flutuam.
- Um banco registra depósitos e atualiza os saldos das contas em tempo real.
Cadeia de suprimentos
- Um depósito atualiza os níveis de estoque e aciona pedidos de reposição automaticamente.
- Um serviço de entregas redireciona os motoristas em tempo real com base no trânsito e nas condições climáticas.
- Um fabricante ajusta os cronogramas de produção com base nos sinais de demanda em tempo real.
Modernização de TI e desvinculação de sistemas legados
- Uma empresa alivia a carga de trabalho de seu mainframe publicando eventos de negócios em modernos serviços de nuvem, garantindo as funções essenciais.
- Uma organização expõe interfaces de eventos em tempo real em torno de um sistema ERP antigo para que novos aplicativos possam reagir instantaneamente sem precisar acessar o backend.
- Uma empresa espelha eventos de um antigo sistema de CRM para uma moderna plataforma SaaS a fim de manter ambos sincronizados em uma migração gradual.
Notificações
- Uma empresa de serviços públicos notifica os clientes assim que uma queda de energia é detectada na área deles e os mantém informados sobre o progresso da equipe de restauração.
- Um aplicativo de viagens envia um alerta em tempo real aos passageiros quando ocorre alguma alteração no portão de embarque, garantindo que possam ajustar os planos imediatamente.
- Um serviço de streaming envia recomendações personalizadas depois que o usuário termina de assistir a um programa.
- Um sistema de segurança envia alertas quando detecta atividades de login suspeitas.
Os casos de uso gerais de arquitetura baseada em eventos incluem:
- Um comprador online clica em um produto e o sistema responde gerando recomendações baseadas em itens similares.
- Um varejista examina transações globais em busca de fraudes e sinaliza quaisquer compras suspeitas à operadora de cartão de crédito.
- O engajamento do cliente em tempo real usa os dados de comportamento do usuário em streaming para acionar ofertas personalizadas ou preços dinâmicos durante uma sessão de compras.
- O monitoramento de saúde publica os sinais vitais do paciente a partir de dispositivos conectados e alerta os médicos instantaneamente quando os limites são ultrapassados.
- As operações de cidades inteligentes gerenciam semáforos e horários de transporte público com base em eventos climáticos e de trânsito em tempo real.
- A detecção de ameaças cibernéticas identifica e responde a atividades suspeitas na rede ou a tentativas de acesso não autorizado em tempo real.
- A otimização de recursos em nuvem expande os recursos de computação automaticamente em ambientes multinuvem quando ocorrem picos de carga de trabalho.
Produto SAP
Descubra a integração resiliente de eventos
Use uma malha distribuída de brokers que desacoplam produtores e consumidores para viabilizar a escalabilidade independente, o isolamento de falhas e a disponibilidade contínua – mesmo com o aumento do tráfego e dos casos de uso.
Benefícios da arquitetura baseada em eventos
As organizações podem aplicar as vantagens da arquitetura baseada em eventos a seus sistemas modernos. Os principais benefícios desse tipo de arquitetura incluem:
- Capacidade de resposta em tempo real e workflows inteligentes: a arquitetura baseada em eventos permite que os sistemas reajam instantaneamente aos eventos à medida que ocorrem, desencadeando decisões e workflows automatizados em tempo real. Isso é ainda mais importante em picos de demanda – por exemplo, durante grandes eventos de vendas ou períodos sazonais. As organizações podem aplicar essa capacidade de resposta às operações diárias, melhorando tudo – da automação da cadeia de suprimentos e detecção de fraudes ao engajamento personalizado do cliente.
- Velocidade e eficiência com comunicação assíncrona: na arquitetura baseada em eventos, os aplicativos se comunicam de maneira assíncrona, ou seja, os produtores publicam mensagens de eventos sem esperar que os consumidores as recebam. Essa abordagem sem bloqueios melhora o desempenho, reduz a latência e permite que os sistemas processem grandes volumes de eventos sem gargalos.
- Flexibilidade e escalabilidade por meio de acoplamento flexível e desacoplamento: em uma arquitetura baseada em eventos, os componentes são acoplados de modo flexível ou desacoplados, operando independentemente e sem depender da disponibilidade ou da lógica interna uns dos outros. Isso favorece o trabalho de atualização, testes e implementação de serviços sem interromper todo o sistema. O desacoplamento também facilita a adição de outros produtores e consumidores conforme a necessidade, possibilitando escalabilidade contínua à medida que as necessidades de negócios evoluem.
- Resiliência e isolamento de falhas: com serviços desacoplados, as eventuais falhas em um componente não se propagam por todo o sistema. Cada serviço pode falhar isoladamente, sem afetar os demais, tornando a arquitetura mais durável e tolerante a falhas do que os tradicionais modelos fortemente acoplados.
- Integração pronta para o futuro: o acoplamento flexível e o design assíncrono tornam a arquitetura baseada em eventos ideal para a modernização da TI, o desacoplamento de sistemas legados e as operações multinuvem. As organizações ganham flexibilidade para integrar novas tecnologias – como automação orientada por IA e inteligência de eventos – sem precisar reescrever os sistemas centrais.
Desafios, limitações e melhores práticas
Embora ofereçam vantagens significativas, as arquiteturas baseadas em eventos também trazem novos desafios de design e operacionais para os quais as organizações precisam se preparar. Ao implementar esse tipo de arquitetura, considere os desafios, limitações e melhores práticas abaixo para garantir a escalabilidade, a resiliência e a governança dos sistemas baseados em eventos.
Desafios
- Complexidade de sistemas distribuídos: gerenciar uma malha de brokers de eventos em vários ambientes acrescenta complexidade à arquitetura. Estruturar fluxos de eventos, garantir a consistência entre os esquemas e lidar com a comunicação assíncrona são atividades que requerem expertise e planejamento avançado. Sem controles de design adequados, as organizações podem vivenciar o caos à medida que o volume de eventos, produtores e consumidores aumenta.
- Governança e compliance: eventos que fluem em ambientes híbridos e multinuvem tornam a aplicação de políticas de governança – como privacidade de dados, segurança e compliance regulatório – um desafio a ser superado. As organizações precisam de robustos frameworks de governança para evitar vazamentos de dados e acesso não autorizado, bem como para manter o controle sobre as estruturas de eventos em rápida expansão.
- Depuração e observabilidade: a resolução de problemas em um sistema assíncrono e acoplado de modo flexível é mais complexa do que em arquiteturas tradicionais. A identificação da causa principal de falhas ou atrasos requer recursos avançados de monitoramento, rastreamento e reprodução de eventos. Isso se aplica principalmente quando as equipes solucionam problemas decorrentes de cadeias de eventos complexas ou tratam os sintomas de caos de eventos.
Como a malha de eventos se encaixa nessa arquitetura
A malha de eventos é uma funcionalidade arquitetônica que conecta vários brokers de eventos em diferentes hyperscalers e em ambientes de nuvem privada, híbridos e multinuvem. A malha de eventos oferece um conjunto completo de serviços avançados para eventos, incluindo streaming, administração, monitoramento, encaminhamento dinâmico de mensagens e filtragem refinada. Ao conectar brokers de eventos a uma malha distribuída, as organizações conseguem:
- Reduzir a complexidade por meio da centralização do encaminhamento e da administração de eventos.
- Dar suporte à governança com catálogos de eventos, aplicação de esquemas e monitoramento.
- Melhorar a observabilidade por meio de rastreamento de eventos, reprodução e funções analíticas avançadas.
- Viabilizar a escalabilidade e a resiliência em ambientes híbridos e multinuvem.
Como a espinha dorsal de sistemas modernos, a malha de eventos é uma camada fundamental para arquiteturas escaláveis e baseadas em eventos que operam em tempo real. Ela ajuda a garantir a capacidade de resposta em tempo real, simplificando a integração, reduzindo o caos de eventos e fortalecendo os recursos de resolução de problemas em ambientes distribuídos.
Limitações da arquitetura baseada em eventos
- Custos operacionais indiretos: os sistemas baseados em eventos exigem ferramentas especializadas para administração de eventos, validação de esquemas e monitoramento, o que pode aumentar a complexidade operacional.
- Requisitos de habilidades: implementar e manter malhas de eventos e padrões de arquitetura baseada em eventos exige expertise em sistemas distribuídos, brokers de eventos e plataformas de integração.
- Riscos de latência: embora a arquitetura baseada em eventos seja estruturada para capacidade de resposta em tempo real, a configuração incorreta do encaminhamento de eventos ou brokers sobrecarregados podem gerar latência.
Melhores práticas de arquitetura baseada em eventos
- Padronizar esquemas e contratos de eventos: use registros de esquemas e imponha a validação para manter a consistência entre produtores e consumidores.
- Implementar a governança sólida: defina políticas claras em relação a aspectos como responsabilidade pelos eventos, segurança e compliance. Aproveite ferramentas de auditoria e controle de acesso.
- Aprimorar a observabilidade: implemente soluções de monitoramento e rastreamento para acompanhar fluxos de eventos, detectar anomalias e simplificar a depuração.
- Desenvolver para escalabilidade e resiliência: use recursos de malha de eventos, como encaminhamento dinâmico e filtragem refinada, para otimizar o desempenho e a tolerância a falhas.
- Automatizar com IA e inteligência de eventos: incorpore funções analíticas e automação orientadas por IA para prever problemas, otimizar o encaminhamento e aprimorar o processo decisório em tempo real.
Características da arquitetura baseada em eventos
Em essência, a arquitetura baseada em eventos depende de diversas características definidoras, que a tornam ideal para ambientes distribuídos, híbridos e multinuvem.
- Comunicação assíncrona: característica fundamental da arquitetura baseada em eventos. Em vez de esperar por uma resposta direta, como nos modelos tradicionais baseados em solicitação, os aplicativos publicam eventos e continuam operando sem demora. Esse estilo sem bloqueios viabiliza interações em tempo real entre sistemas distribuídos e melhora a capacidade de resposta mesmo sob cargas elevadas.
- Acoplamento flexível: os aplicativos não precisam conhecer a disponibilidade, a estrutura de APIs ou a lógica interna uns dos outros – eles simplesmente se comunicam por meio de eventos encaminhados por um broker ou malha de eventos. Ao garantir que produtores e consumidores de eventos operem independentemente, as equipes podem adicionar, atualizar ou substituir serviços sem interromper o sistema como um todo, aumentando a agilidade e a tolerância a falhas.
- Escalabilidade independente: como os componentes são desacoplados, é possível aumentar ou diminuir a escala de cada serviço com base na demanda, sem exigir alterações em aplicativos upstream ou downstream. A SAP destaca isso como um benefício central da integração baseada em eventos, especialmente em ambientes híbridos e multinuvem, nos quais cargas de trabalho distribuídas e picos de carga devem ser gerenciados com eficiência.
Juntas, essas características tornam a arquitetura baseada em eventos uma abordagem poderosa para o desenvolvimento de sistemas que operem em tempo real e sejam resilientes, adaptáveis e prontos para o crescimento – seja para dar suporte a microsserviços, integrar estruturas de nuvem ou viabilizar aplicativos de processos de negócios baseados em eventos.
Produto SAP
Adote a arquitetura baseada em eventos em larga escala
Habilite a conectividade instantânea e em tempo real em todas as nuvens com a malha de eventos em escala corporativa.
Perguntas frequentes
A principal diferença entre a arquitetura baseada em eventos e a baseada em solicitações é o modo como os sistemas se comunicam e reagem a mudanças. No modelo baseado em solicitações, a interação começa quando um consumidor solicita dados ou uma ação para o servidor que responde ao pedido. Esse modelo costuma ser síncrono – ou seja, o solicitante espera (é bloqueado) até receber a resposta – e é baseado em solicitações (pull) – ou seja, os aplicativos só recebem atualizações quando as solicitam.
Em um modelo baseado em eventos, a interação começa quando um evento ocorre – com mudança significativa no status de um sistema de negócios – e os aplicativos reagem automaticamente. Como os sistemas baseados em eventos são assíncronos, os produtores publicam eventos sem esperar que um consumidor responda. Esse modelo baseado em push e com acoplamento flexível permite que os aplicativos operem independentemente e processem eventos em tempo real em ambientes distribuídos, híbridos e multinuvem.
Os principais componentes da arquitetura baseada em eventos são produtores, consumidores, brokers e canais de eventos. Juntos, eles criam um fluxo de eventos assíncrono e acoplado de modo flexível que permite interações em tempo real e escaláveis em ambientes distribuídos, híbridos e multinuvem:
- Produtores: aplicativos que geram ou capturam eventos – como atualizações de pedidos, pagamentos e leituras de sensores – e os publicam no sistema baseado em eventos
- Consumidores: assinam, processam e reagem a eventos desencadeando workflows, atualizando dados, enviando notificações ou iniciando processos downstream
- Broker de eventos: middleware de mensagens que encaminha eventos de produtores para consumidores e fornece recursos como entrega confiável, filtragem, encaminhamento dinâmico, persistência e reprodução
- Canais de eventos: caminhos gerenciados pelo broker de eventos que conectam produtores e consumidores – os produtores publicam eventos em um canal e os consumidores os assinam nos canais relevantes para eles
Os padrões da arquitetura baseada em eventos são abordagens de design reutilizáveis que definem como os eventos são capturados, encaminhados, armazenados e consumidos em um sistema baseado em eventos. Os principais padrões desse tipo de arquitetura incluem:
- Publicação/assinatura (pub/sub): os produtores publicam eventos em um canal e vários consumidores os assinam e reagem às publicações automaticamente.
- Streaming de eventos: os produtores publicam fluxos contínuos de eventos para um broker e os consumidores podem ler, reproduzir ou processar tais eventos em qualquer ponto do fluxo.
- CQRS (segregação de responsabilidades de comando e consulta): as operações de leitura e gravação são separadas em modelos diferentes para propagar atualizações de maneira assíncrona.
- Sourcing de eventos: os sistemas armazenam cada alteração de status como um evento imutável em um log append-only (apenas acréscimo) e redefinem o status atual reproduzindo eventos.
Os principais benefícios incluem:
- Acoplamento flexível: os aplicativos operam independentemente, sem conhecer o funcionamento interno uns dos outros, o que facilita atualizações, integrações e extensões.
- Escalabilidade: novos produtores e consumidores podem ser adicionados sem problemas, e as cargas de trabalho são dimensionadas em ambientes híbridos e multinuvem.
- Resiliência: serviços desacoplados isolam falhas, ou seja, um componente não afeta todo o sistema quando para de funcionar.
- Velocidade e capacidade de resposta em tempo real: a comunicação assíncrona e sem bloqueios permite que os sistemas reajam instantaneamente a eventos de negócios e processem grandes volumes com baixa latência.
Produto SAP
Conheça o SAP Integration Suite
Acelere a inovação com integração baseada em eventos, malha de eventos, APIs e processos em tempo real.