SNS vs SQS vs EventBridge

Distribuir, enfileirar ou rotear?

Três serviços de integração que aparecem juntos em quase toda arquitetura desacoplada. Uma pergunta resolve a maioria das questões: a mensagem precisa chegar a vários destinos ao mesmo tempo (SNS), precisa esperar por um consumidor (SQS) ou precisa ser roteada conforme o seu conteúdo (EventBridge)?

Amazon SNS

  • Distribuir
  • Publish/subscribe
  • Entrega push a todos os assinantes
  • E-mail, SMS, SQS, Lambda, HTTP

Ver página completa

Amazon SQS

  • Enfileirar
  • Uma mensagem, um consumidor
  • Consumo por pull, no ritmo do consumidor
  • Absorve picos e evita perda de trabalho

Ver página completa

Amazon EventBridge

  • Rotear eventos
  • Barramento com regras de correspondência
  • Integra serviços AWS, aplicações e SaaS
  • Também agenda execuções

Ver página completa

Regra para a prova

Vários destinos ao mesmo tempo → SNS

Desacoplar e processar depois → SQS

Rotear por regra / evento de SaaS → EventBridge

Distribuição de mensagens pelo Amazon SNS Publicador Amazon SNS tópico E-mail / SMS Fila SQS AWS Lambda
O produtor publica uma vez no tópico e todos os assinantes recebem sua própria cópia da mensagem.
Fila do Amazon SQS entre produtor e consumidor Aplicação Amazon SQS mensagens em espera Consumidor cada mensagem é processada por um consumidor
A aplicação deposita a mensagem e segue o seu trabalho. O consumidor retira quando estiver pronto: um pico de tráfego vira fila, não indisponibilidade.
Roteamento de eventos pelo Amazon EventBridge Produtor de evento EventBridge regras de correspondência AWS Lambda Fila SQS
Os eventos chegam ao barramento e as regras decidem quais destinos recebem cada um, pelo conteúdo do evento.

Detalhes que costumam decidir a questão

  • O padrão fan-out clássico combina SNS com várias filas SQS assinantes.
  • Se a questão fala em "não perder a mensagem se o consumidor cair", pense fila.
  • Se fala em "reagir a mudanças de estado de vários serviços", pense barramento de eventos.