Pick the wrong messaging system for an event-driven workload and you do not find out at design review. You find out three months in, at 02:00, when the cost line on the bill quietly doubles or a downstream consumer falls hopelessly behind. SQS, Kinesis, EventBridge and MSK all do something that looks superficially similar — but at 100K events per second their economics, ordering guarantees, and operational profiles diverge sharply.
What each tool is actually for
- SQS — distributed queue. At-least-once delivery, no consumer ordering across the queue (FIFO mode gives per-group ordering at lower throughput), no replay. Best for work distribution between services.
- Kinesis Data Streams — ordered, replayable log. Per-shard ordering, 24 hr to 365 day retention. Best for streaming analytics, CDC, and anything that needs replay.
- EventBridge — content-based router. Pattern matching, schema registry, dozens of native targets. Best for orchestration and SaaS event ingest. Throughput sweet spot is in the thousands, not millions.
- MSK (managed Kafka) — Kafka. Maximum flexibility and throughput, highest operational and cost floor. Best when you genuinely need Kafka semantics or already run Kafka elsewhere.
Cost at 100K and 1M events/sec
From a pinpole canvas simulation with 1 KB average event size, single-consumer-group fanout, 7-day retention where applicable:
| Service | 100K events/sec | 1M events/sec | Ordering | Replay |
|---|---|---|---|---|
| SQS Standard | ~$1,040/mo | ~$10,400/mo | None | No |
| Kinesis (on-demand) | ~$2,300/mo | ~$23,000/mo | Per-shard | Yes |
| EventBridge | ~$2,600/mo | ~$26,000/mo | None | 7 day archive |
| MSK (m7g.large × 3) | ~$680/mo | ~$3,400/mo | Per-partition | Yes |
MSK looks dramatically cheaper at high volume, and on raw infrastructure it is. The gap closes once you factor in the operational tax: someone has to actually run Kafka. For most teams at 100K events/sec, SQS or Kinesis is still the right answer.
When each one actually wins
SQS wins
Work distribution between services, retry-heavy workloads, idempotent consumers, no ordering requirement. Cheapest at low-to-medium throughput, zero ops.
Kinesis wins
Real-time analytics, CDC pipelines, anything that needs replay or fan-out to multiple consumer groups, ordered per-key.
EventBridge wins
SaaS event ingest, cross-account orchestration, when you want declarative routing rules without writing code. Not a high-throughput pipe.
MSK wins
Sustained millions of events/sec, existing Kafka skills on the team, advanced semantics (exactly-once, transactional). Highest floor, lowest ceiling per event.
Three expensive traps the simulation catches
- Using SQS for streaming. Engineers treat SQS as a stream because it is the default they know. At fan-out time they realise there is no replay, and rebuild on Kinesis at 4× the cost they would have paid up front.
- Using EventBridge as a high-throughput bus. EventBridge's per-event cost ($1 per million) looks fine until you hit a million events per minute. Then it is $43k/mo on routing alone.
- Under-sharding Kinesis. Provisioned Kinesis with too few shards looks cheap and works fine — until a hot partition causes a single shard to throttle. Pre-deployment spike simulation surfaces this; production discovers it during a launch.
"Do I need to replay this stream in three months?" is the single highest-signal question. If the answer is yes, you want Kinesis or MSK. If no, SQS is almost always the cheaper and simpler answer. EventBridge is a routing layer, not a pipe.
Simulating it yourself
On the pinpole canvas, drop the producer, the messaging service, and the consumer. Set the event rate, average size, retention, and fan-out. The simulator returns per-service throughput, latency through the pipe, and live monthly cost. Swap the messaging node to compare. The "right tool" usually announces itself within three runs.
The wrong messaging layer is one of the most expensive AWS mistakes.
Compare SQS, Kinesis, EventBridge and MSK at your real event rate before you commit a single line of producer code.
Start 14-day free trial →