Apache Kafka is an open-source distributed log for high-throughput, durable event streaming, with a large ecosystem including Kafka Connect and Kafka Streams.
Brokers in KRaft mode (ZooKeeper is gone in 4.0) hold a partitioned, replicated commit log; tiered storage can offload older segments to object storage. Scale by adding brokers and reassigning partitions. Kafka Connect runs as a separate cluster of workers for source and sink integration, and Kafka Streams is a library inside your application, not a server.
How Apache Kafka answers the questions Event Streaming turns on.
| How it works | |
| Protocol | Kafka: defines it |
| Consumption model | Replayable log with offsets; share groups add queues since 4.2 |
| Storage | Replicated local disks; tiered storage to object store |
| Delivery guarantee | At-least-once by default; Exactly-once with transactions |
| Running it | |
| What you run | Brokers in KRaft mode; ZooKeeper removed in 4.0 |
| Scaling | Add brokers, then reassign partitions; tiered storage lightens it |
| Multi-region | MirrorMaker 2, asynchronous; no built-in active-active |
| Connections | |
| Connectors | Kafka Connect: a separate cluster of workers |
| Transformations | Kafka Streams library and Connect SMTs; no server-side engine |
| Cost | |
| Billing unit | None for the project; managed Kafka billed by the vendor |
vs Apache Kafka: Commercial · Managed · Serverless · Subscription · Operational complexity: Low
vs Apache Kafka: Java
vs Apache Kafka: Free · Subscription · Operational complexity: Medium · Java