I teach online about Apache Kafka, and a very frequent and recurring question I get is:
How can I learn Confluent Kafka?
Let’s get right to it!
Apache Kafka and Confluent Kafka
Apache Kafka is the project hosted by the Apache foundation, at https://github.com/apache/kafka. It’s fully open source and maintained by the community. About 75% of the commits on the Apache Kafka project come from the private company Confluent, the rest are done by Hortonworks, IBM and other companies or independent contributors.
And… Confluent Kafka is… exactly the same as Apache Kafka!
Let me make this super clear: it’s exactly the same software.
To be entirely accurate, Confluent adds a few custom classes that are metrics reporters as part of their Apache Kafka bundle, which helps them run tools such as Confluent Control Centre if you enable it in your Apache Kafka deployment.
As such, from a learning perspective, nothing changes. Calling it “Confluent Kafka” is a costly mistake. It’s just Apache Kafka.
So what’s Confluent Platform then?
Glad you asked! This is a better question.
Confluent adds a bunch of “source available” (for the most part) software to a Kafka deployment in order to add capabilities. This includes Schema Registry, the Avro serializers, KSQL, REST Proxy, etc.
Are these software solely working if you run the Kafka version distributed as part of the Confluent Platform? Absolutely not, they work equally well on the open source Apache Kafka!
How to learn Apache Kafka and Confluent?
- I have an Apache Kafka for Beginners course I think you’ll love, in which you’ll learn all you need to know to get started with Kafka (and hence a great first step before dealing with the Confluent platform): Apache Kafka for Beginners
- I have courses dedicated to learn the Confluent Platform components. Here they are: Confluent Schema Registry & REST Proxy (where you’ll learn about the Avro serializers) and Confluent KSQL (Confluent’s wrapper around the Kafka Streams API).
- Other courses that are not directly related to Confluent but still are very much applicable to Apache Kafka: https://kafka-tutorials.com