SQS vs SNS vs Kinesis vs EventBridge
The #1 most-asked messaging question in architect interviews β knowing when to use which service:
| Aspect | SQS | SNS | Kinesis Data Streams | EventBridge |
|---|---|---|---|---|
| Pattern | Queue (point-to-point) | Pub/Sub (fan-out) | Ordered streaming | Event routing |
| Ordering | FIFO only (3,000 msg/s) | No | Yes (per shard) | No |
| Retention | Up to 14 days | None (fire and forget) | 1β365 days | Archive up to unlimited |
| Replay | No | No | Yes (any position) | Yes (archive replay) |
| Consumers | Single consumer (or fan-out via SQS per consumer) | Multiple subscribers | Multiple consumers (KCL, Lambda, Flink) | Multiple targets per rule |
| Throughput | Unlimited (standard) | Millions/sec | 1 MB/s per shard write, 2 MB/s read | 2,400 events/sec default |
| Best For | Work queues, decoupling, buffering | Simple fan-out, notifications | Real-time analytics, clickstream, IoT, log aggregation | Microservice events, SaaS integration, AWS service events |
Decision Framework
- "I need to decouple two services" β SQS
- "One event, multiple consumers" β SNS (simple) or EventBridge (with content filtering)
- "I need ordering + replay + high throughput" β Kinesis Data Streams
- "I need smart event routing with filtering" β EventBridge
- "I need the Kafka ecosystem" β Amazon MSK
π― Key Takeaway
Interview tip: "I choose the messaging service based on the pattern: SQS for work queues and decoupling, SNS for simple fan-out, Kinesis for ordered high-throughput streaming with replay, and EventBridge for smart event routing between microservices. The key differentiator is whether you need ordering (Kinesis), content-based filtering (EventBridge), or simple queue semantics (SQS)."