Padrões orientados a eventos com EventBridge

Implantando Aplicações na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Um pedido, quatro reações

  • Um pedido deve chegar a billing, fulfillment, analytics e email
  • Chamadas diretas para os quatro são frágeis e lentas
  • Um evento se ramifica para todos os consumidores

Um evento se ramificando de um tópico central para vários serviços downstream em paralelo

Implantando Aplicações na AWS

Escolhendo os serviços de mensagens certos

Grade 2x2 dos serviços de mensagens da AWS: fila SQS com fluxo produtor-consumidor, fanout pub/sub do SNS para vários assinantes, EventBridge com roteamento por regras e Kinesis com shards ordenados e replay

  • SQS: uma fila, um grupo de consumidores, pelo menos uma vez
  • SNS: pub/sub, envia uma mensagem para muitos assinantes
  • EventBridge: roteia eventos por conteúdo para muitos destinos
  • Kinesis Data Streams: streaming ordenado e reproduzível
Implantando Aplicações na AWS

O padrão fanout

  • Um evento deve chegar a vários consumidores de uma vez
  • Publique em um tópico do SNS
  • Cada fila SQS assina o tópico
  • Cada consumidor recebe sua cópia, de forma desacoplada

Padrão de fanout SNS para SQS: um tópico SNS publicando em várias filas SQS, cada fila atendendo seu consumidor no próprio ritmo

Implantando Aplicações na AWS

Filtrando para cada um receber só o que precisa

  • Sem filtros, todo assinante recebe todo evento
  • Políticas de filtro de assinatura do SNS: filtram por atributos da mensagem
  • Filtros de conteúdo do EventBridge: combinam campos do evento
  • Cada consumidor recebe só os eventos relevantes

Política de filtro de assinatura do SNS e filtro de conteúdo do EventBridge: cada consumidor recebe apenas eventos que correspondem à sua regra, reduzindo processamento e custo

Implantando Aplicações na AWS

Roteamento com EventBridge

Diagrama de roteamento do EventBridge: event bus recebendo eventos de várias fontes, regras correspondendo a padrões e eventos roteados para Lambda, SQS e outros destinos

  • Event bus: recebe eventos de muitas fontes
  • Regra: um padrão que combina certos eventos
  • Destino: para onde os eventos combinados são enviados
  • Um evento pode ir para vários destinos
Implantando Aplicações na AWS

Streaming com Kinesis Data Streams

  • Um fluxo contínuo e em tempo real de registros
    • Registros ordenados dentro de um shard
    • Reproduzível: consumidores relêem de qualquer ponto
    • Vários consumidores leem o mesmo stream de forma independente
    • Use para clickstream, telemetria, alto volume de dados

Arquitetura do Kinesis Data Streams: produtores escrevem registros ordenados em shards numerados; três consumidores leem de forma independente em posições diferentes, com seta de retrocesso mostrando replay

Implantando Aplicações na AWS

Lambda como consumidora de eventos

  • Lambda pode ser acionada por SQS, SNS, EventBridge, Kinesis
  • Mapeamento de origem de eventos faz polling de SQS e Kinesis
  • SNS e EventBridge empurram eventos para a Lambda
  • Processamento quase em tempo real sem servidores para gerenciar

Lambda acionada por quatro fontes de eventos: mapeamento de origem fazendo polling de SQS e Kinesis em lotes, enquanto SNS e EventBridge enviam eventos direto para a Lambda

Implantando Aplicações na AWS

Vamos praticar!

Implantando Aplicações na AWS

Preparing Video For Download...