Favicon of Apache Kafka

Apache Kafka

Apache Kafka is an open-source distributed log for high-throughput, durable event streaming, with a large ecosystem including Kafka Connect and Kafka Streams.

LicenseOpen source (permissive)· Apache-2.0
DeploymentSelf-hostedManagedHybrid
PricingFree
Operational complexityHigh
WorkloadStreaming
LanguageJava, Scala

Use it when

  • Several consumers need to read the same events independently, or replay history from a point in time.
  • You are moving CDC streams, application events, or telemetry at a volume where a broker that routes each message would not keep up.
  • Ordering within a key matters, since a partition preserves it.
  • Kafka Connect and Kafka Streams cover the integration and processing you need without a separate engine.

Think twice when

  • You need request/reply, per-message routing, or priority queues; a broker such as RabbitMQ fits that shape better.
  • Nobody on the team can run a cluster, and a managed service (Confluent Cloud, Amazon MSK) or a Kafka-compatible single binary (Redpanda) is not an option.
  • Your volume is small enough that a database table or a managed queue would do.

How it runs

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.

Details

Compare

How Apache Kafka answers the questions Event Streaming turns on.

Event Streaming
How it works
ProtocolKafka: defines it
Consumption modelReplayable log with offsets; share groups add queues since 4.2
StorageReplicated local disks; tiered storage to object store
Delivery guaranteeAt-least-once by default; Exactly-once with transactions
Running it
What you runBrokers in KRaft mode; ZooKeeper removed in 4.0
ScalingAdd brokers, then reassign partitions; tiered storage lightens it
Multi-regionMirrorMaker 2, asynchronous; no built-in active-active
Connections
ConnectorsKafka Connect: a separate cluster of workers
TransformationsKafka Streams library and Connect SMTs; no server-side engine
Cost
Billing unitNone for the project; managed Kafka billed by the vendor

Share:

Alternatives to Apache Kafka

Favicon

 

  
  
Favicon

 

  
  
Favicon

 

  
  

Used in architectures