Quatro servicos, quatro shapes diferentes. SQS = fila point-to-point. SNS = broadcast pub/sub. EventBridge = roteamento por payload. Kinesis = stream com replay. Misturar o errado e o desenho de sistema mais comum em entrevista.

Comparativo direto

SQSSNSEventBridgeKinesis
ModeloQueueTopic (pub/sub)Bus + rulesAppend-only log
PadraoPoint-to-pointFan-outContent-based routingStreaming + replay
GarantiaAt-least-once (Standard); exactly-once (FIFO)At-least-onceAt-least-onceOrdered per partition
Retencao14 dias maxNao retem (pass-through)24h por default7 dias (ate 365 paid)
OrderFIFO so com SQS FIFO + group IDFIFO topics existem (mais raro)Sem ordemPor partition key
ReplayNao (mensagem somente uma vez)NaoArchive + replay (paid)Nativo
FiltragemNao (consumer filtra)Subscription filter por atributoPattern por payloadConsumer filtra
CustoCheapCheap~3x SNS por eventoPor shard (caro se ocioso)
QuandoTasks de worker, queue de jobs, decouplingFan-out simples para varios consumersRoteamento complexo, integracoes 3rd-party SaaSAnalytics, audit, ML pipelines, sequencia importa
Misturar e tao comum quanto criticavel:
  • Usar Kinesis quando voce so precisa de SQS β€” paga shard caro sem motivo, complica consumer state
  • Usar SNS direto para consumer unico β€” vira fan-out de 1, perde reentry/DLQ que SQS da de graca
  • Usar SQS para evento com 5 consumidores β€” cada consumer apaga, ninguem mais ve. Use SNS β†’ 5x SQS