SNS vs SQS vs EventBridge: Picking the Right Messaging Service
All three move events between components, but they model different patterns: SQS is a queue (one consumer per message), SNS is pub/sub (every subscriber gets every message), and EventBridge is an event bus (routed events with filtering and third-party sources).
SQS — work queues
Use SQS when a task must be processed once by one consumer and you want to buffer load spikes. Consumers poll, process, and delete. Visibility timeout hides in-flight messages; dead-letter queues isolate poison messages. FIFO queues add ordering + exactly-once.
SNS — broadcast/fan-out
Use SNS when one event must reach many independent systems — the producer stays unaware of consumers. The standard pattern is SNS → per-consumer SQS queues (fan-out), giving each system durable, retryable delivery.
EventBridge — event routing
EventBridge is a serverless event bus: events from AWS services, SaaS partners, and custom apps route to targets by pattern-matching rules. Choose it for event-driven architectures needing content filtering, scheduling, SaaS integration, or schema discovery.
Decision table
- One task → one consumer, buffer work → SQS
- One event → many consumers → SNS (usually to per-consumer SQS)
- Route/filter events from many sources (incl. SaaS) → EventBridge
- Scheduled triggers → EventBridge Scheduler