Kinesis vs Amazon MSK vs EventBridge: Picking the Right Event Platform
All three services move events, but they answer different questions. Kinesis is AWS's native streaming platform for high-throughput ordered data. MSK is managed Apache Kafka for teams standardized on Kafka's ecosystem. EventBridge is a serverless event bus for routing application events to targets with filtering — not a streaming store.
Exam questions hinge on three signals: is this a durable replayable stream (Kinesis/MSK) or event routing (EventBridge)? Is Kafka compatibility required (MSK)? Is the answer 'fully managed, least operational effort' (usually EventBridge or Kinesis Data Streams/Firehose over MSK)?
Kinesis: native AWS streaming
Kinesis Data Streams stores an ordered, replayable stream per shard (1 MB/s in, 2 MB/s out per shard). Consumers use the KCL or Lambda to process records; retention is 24 hours to 365 days. Choose it for clickstream ingestion, real-time analytics pipelines, and ordering-sensitive event logs.
Kinesis Data Firehose is the delivery cousin — buffers and delivers streams to S3, Redshift, or OpenSearch with optional Lambda transforms. If the requirement ends at 'land data in a destination,' Firehose is the answer.
Amazon MSK: when it must be Kafka
MSK runs real Apache Kafka clusters — brokers, ZooKeeper/KRaft, the whole ecosystem. Choose MSK when migrating existing Kafka workloads, when teams depend on Kafka clients/tools (Kafka Connect, ksqlDB), or when multi-cluster replication patterns are already Kafka-based.
The trade-off: more operational surface than Kinesis. MSK Serverless reduces this, but if there's no Kafka requirement, native Kinesis is usually the 'less operations' answer.
EventBridge: the routing bus
EventBridge ingests events from AWS services, SaaS partners, and custom apps, then routes them to 20+ targets via rules — with content filtering, schema registry, and event replay. It's the default for decoupled 'X happened → notify these consumers' integration, scheduled tasks, and cross-service choreography.
It's not a stream: no ordering guarantees across the bus, no shard-based replay model for bulk analytics. If the question says 'route events to different targets based on content,' think EventBridge.
Decision shortcuts
Watch for hybrid answers: producers often publish to Kinesis while EventBridge handles the application-integration layer — they coexist rather than compete.
- Ordered replayable stream, real-time consumers → Kinesis Data Streams
- Deliver streaming data to S3/Redshift/OpenSearch, no code → Kinesis Data Firehose
- Existing Kafka ecosystem or migration → Amazon MSK
- Route events between apps/AWS services with filtering → EventBridge
- Scheduled jobs or cron-like triggers → EventBridge Scheduler
- Simple decoupling of one producer/consumer → SQS (not these three)