Event Streaming Platforms: Kafka vs Pulsar vs Kinesis (2026)
notes
Event streaming has become the backbone of modern application architectures. Microservices communicate through events. Analytics pipelines ingest events. Real-time features react to events. The question for most teams is not whether to use event streaming, but which platform to bet on.
This note compares the three dominant options — Kafka, Pulsar, and Kinesis — on the dimensions that matter for production decisions.
Apache Kafka: The Industry Standard
Kafka is the default choice for event streaming, and for good reason. It has been in production at massive scale for over a decade, the ecosystem of connectors and tools is unmatched, and the talent pool of engineers who know Kafka is the largest.
Strengths:
- Battle-tested at enormous scale (trillions of messages per day at LinkedIn, Uber, Netflix)
- Kafka Connect ecosystem for integrating with databases, queues, and storage
- Kafka Streams and ksqlDB for stream processing without a separate framework
- Strong exactly-once semantics with idempotent producers and transactional writes
- Managed options (Confluent Cloud, Amazon MSK, Redpanda Cloud) reduce operational burden
Weaknesses:
- Operational complexity when self-hosted. ZooKeeper management (being replaced by KRaft, but migration takes effort). Broker rebalancing. Partition management.
- Storage is coupled to compute. Brokers hold the data on local disk. Scaling storage means scaling brokers, which means scaling compute — even if you only need more storage.
- Multi-tenancy is limited. Isolating workloads on shared Kafka clusters requires careful configuration and is never truly isolated.
Cost model: Confluent Cloud charges by throughput (per GB ingress/egress) and storage. Self-hosted Kafka’s cost is the infrastructure (VMs, disks, network) plus the engineering time to operate it. The engineering cost is often larger than the infrastructure cost.
Apache Pulsar: The Architectural Alternative
Pulsar was designed to address Kafka’s architectural limitations. Its key differentiator is the separation of compute (brokers) and storage (BookKeeper or tiered storage), which allows independent scaling of each.
Strengths:
- Separate compute and storage. Scale brokers for throughput and storage for retention independently. This matters for use cases with high retention requirements (compliance, replay).
- Native multi-tenancy. Tenants, namespaces, and topics are first-class concepts with isolation, quotas, and access control.
- Tiered storage. Automatically offload old data from BookKeeper to S3/GCS/Azure Blob. Infinite retention without scaling the streaming layer.
- Geo-replication built in. Replicating across data centers is a configuration option, not a separate system.
- Built-in schema registry.
Weaknesses:
- Smaller ecosystem than Kafka. Fewer connectors, fewer tools, fewer engineers who know it.
- More complex architecture. Pulsar requires brokers, BookKeeper nodes, and ZooKeeper (being replaced). The component count is higher than Kafka.
- Managed options are more limited. StreamNative Cloud is the primary managed offering. AWS and Azure do not offer native managed Pulsar.
- Community and development velocity have been uneven compared to Kafka’s consistent investment.
Amazon Kinesis: The AWS-Native Option
Kinesis is not a general-purpose event streaming platform — it is an AWS service for real-time data ingestion. It is simpler than Kafka or Pulsar, with correspondingly fewer features.
Strengths:
- Zero operational overhead. Fully managed. No brokers, no clusters, no rebalancing.
- Deep AWS integration. Lambda triggers, Firehose for delivery to S3/Redshift/Elasticsearch, Analytics for SQL over streams.
- Fast to set up. A Kinesis stream can be running in minutes. Good for teams that need event streaming without the infrastructure expertise.
- On-demand capacity mode eliminates capacity planning for bursty workloads.
Weaknesses:
- 7-day maximum retention (extended retention up to 365 days at additional cost). Not suitable for use cases requiring indefinite replay.
- Shard-based scaling is coarser than Kafka partitions. Each shard handles 1MB/s in and 2MB/s out. Scaling means adding shards, which requires resharding operations.
- AWS lock-in. Kinesis APIs are not compatible with anything outside AWS. Moving off Kinesis means rewriting producers and consumers.
- Limited ecosystem compared to Kafka. No equivalent of Kafka Connect’s breadth.
- Higher per-GB cost than self-hosted Kafka at high throughput.
Decision Framework
| Factor | Kafka | Pulsar | Kinesis |
|---|---|---|---|
| Operational complexity | High (self-hosted) / Medium (managed) | High | Low |
| Ecosystem breadth | Highest | Growing | AWS-focused |
| Multi-tenancy | Limited | Native | Per-stream isolation |
| Long-term storage | Requires external setup | Native tiered storage | 7-365 day retention |
| Cost at scale | Lowest (self-hosted) | Medium | Highest |
| Talent availability | Highest | Limited | AWS-familiar |
Choose Kafka if you need the broadest ecosystem, your team has Kafka experience, or you are using a managed Kafka service that handles operations. Kafka is the safe default.
Choose Pulsar if you need native multi-tenancy, tiered storage for long retention, or you are building a platform that serves multiple teams with different streaming needs.
Choose Kinesis if you are all-in on AWS, your streaming needs are straightforward, and you value operational simplicity over flexibility. Kinesis gets you running fastest with the least expertise.
The Self-Hosted vs. Managed Decision
For Kafka and Pulsar, the self-hosted vs. managed decision is often more important than the platform choice. Self-hosting gives you control and lower per-message costs at scale. Managed services give you operational simplicity at higher per-message costs.
The crossover point depends on your team. If you have experienced infrastructure engineers who enjoy managing distributed systems, self-hosting Kafka is cost-effective above a few TB/day. If your team’s core competency is application development, the managed service is worth the premium — being busy with infrastructure does not equal being productive on your actual product.
Getting Started
If you are new to event streaming: start with a managed Kafka service (Confluent Cloud or Amazon MSK Serverless). Build a producer and consumer for a single use case. Understand partitioning, consumer groups, and offset management. Then expand.
Do not design your event schema after you start producing events. Schema design is the single most impactful decision in event streaming, and changing schemas after events are in flight is painful. Invest time in schema design upfront. Use Avro or Protobuf with a schema registry. You will thank yourself later.