Opensource vs ce vs ccs dependency

Hi all!

I’ve got a simple question: what are the differences between the 3 different flavors of Kafka streams dependency when I’m using it for event processing?

In terms of day-to-day issues, exists any kind of difference?


I should probably let someone from Confluent answer this question, but here is my observed take on it.

  • Confluent builds their own fork of Kafka and can release bug-fixes on their own timeline. It is closely associated with the Apache fork of Kafka. I would expecte their -ccs version to match closely to the version of Apache Kafka it is based on, but could have some additional bug-fixes that are a priority to Confluent.

  • I would expect the -ce to contain enterprise additions to the library dependencies, I would doubt the -ce client library would have bug fixes that are not in -ccs; but this is just an assumption on my part.

Looks like it is the io.confluent.telementry-events-api library of theirs that helps with tracability. This would be added to Kafka Streams as it depends on Kafka Client.

+--- org.apache.kafka:kafka-clients:{strictly 7.2.0-ce} -> 7.2.0-ce
|    +--- io.confluent:telemetry-events-api:7.2.0-ce
|    +--- com.github.luben:zstd-jni:1.5.2-1
|    +--- org.lz4:lz4-java:1.8.0
|    +--- org.xerial.snappy:snappy-java:
|    \--- org.slf4j:slf4j-api:1.7.36
|    \--- org.apache.kafka:kafka-streams:7.2.0-ce
|         +--- org.slf4j:slf4j-api:1.7.36
|         +--- com.fasterxml.jackson.core:jackson-annotations:2.13.2 (*)
|         +--- com.fasterxml.jackson.core:jackson-databind: (*)
|         +--- org.apache.kafka:kafka-clients:7.2.0-ce (*)
|         \--- org.rocksdb:rocksdbjni: