AWS SAA-C03/07 - Desacoplamento e Integração2 min
SNS
Responda com suas palavras antes de ler o resto da nota.
- Que problema isso resolve?
- Quando usar / quando NÃO usar?
- Qual o principal trade-off (custo, latência, operação)?
- Que sinal no enunciado aponta pra isso?
- Com o que isso é confundido na prova?
Conceito
Pub/sub: um Publish num tópico entrega para todos os inscritos, em push.
Tipos de subscriber
SQS · Lambda · HTTP/HTTPS endpoint · e-mail · SMS · Kinesis Data Firehose · Mobile push (SNS Mobile Push).
Até 12,5 milhões de inscritos por tópico e 100 mil tópicos por conta.
O padrão fan-out
┌→ SQS fila-faturamento → worker A
S3 event → SNS ┼→ SQS fila-analytics → worker B
└→ SQS fila-notificacao → worker C
Um evento, vários sistemas, cada um processando no próprio ritmo e com a própria DLQ. É a resposta quando o enunciado diz "vários sistemas precisam reagir ao mesmo evento".
Recursos que caem
- Message filtering: cada subscription tem um filtro por atributo — o subscriber só recebe o que interessa, sem filtrar no código.
- SNS FIFO: mantém ordem e deduplicação; só entrega pra SQS FIFO.
- Retry policy e DLQ por subscription.
- Message Data Protection identifica e mascara dado sensível na mensagem.
- Criptografia com KMS e resource policy no tópico (permite cross-account).
Trade-offs
SNS não persiste a mensagem: ele tenta entregar e, se o subscriber falha além da política de retry, a mensagem se perde (ou vai pra DLQ). Por isso o padrão de produção é SNS → SQS: o SNS distribui, a fila garante durabilidade e retry.
Comparado ao EventBridge, o SNS é mais simples, mais barato e com menor latência; o EventBridge entrega filtro rico por conteúdo, schema registry, integração com SaaS e archive/replay. Se a questão pede roteamento por regra ou replay, é EventBridge.
Sinais de prova
- "Vários sistemas precisam do mesmo evento" → SNS fan-out (→ SQS)
- "Notificar por e-mail/SMS quando um alarme disparar" → SNS
- "Cada consumidor quer só um subconjunto das mensagens" → message filtering
- "Garantir que nenhum consumidor perca o evento" → SNS → SQS, não SNS direto
- "Ordem preservada no fan-out" → SNS FIFO → SQS FIFO
- "Rotear por conteúdo complexo, integrar SaaS, reprocessar histórico" → EventBridge
Relacionado
Parte de 07 - MOC Desacoplamento e Integração · Documentação AWS