Overview of Confluent Platform Client Programming

You can use Apache Kafka® clients to write distributed applications and microservices that read, write, and process streams of events in parallel, at scale, and in a fault-tolerant manner, even those related to network problems or machine failures.

The Kafka client library provides functions, classes, and utilities that you can use to create Kafka producer clients and consumer clients using your choice of programming languages. The primary way to build production-ready producers and consumers is by using a programming language and a Kafka client library.

The official Confluent supported clients are:

  • Java: The official Java client library supports the producer, consumer, Streams, and Connect APIs.

  • librdkafka: The librdkafka and the following derived clients libraries only support the admin, producer, and consumer APIs.

    • C/C++

    • Python

    • Go

    • .NET

    • JavaScript

When you use the official Confluent-supported clients, you get the same enterprise-level support that you get with the rest of Confluent Platform:

  • The release cycle for Confluent-provided clients follow the Confluent release cycle, as opposed to the Kafka release cycle.

  • Confluent Platform maintenance fixes are provided for the 2-3 years (2 years with the Standard Support and 3 years with the Platinum Support) after the initial release of a minor version.

Additional open-source and community-developed Kafka client libraries are available for other programming languages. Some of these include Scala, Ruby, Rust, PHP, and Elixir.

The core APIs in the Kafka client library are:

  • Producer API: This API provides classes and methods for creating and sending messages to Kafka topics. It allows developers to specify message payloads, keys, and metadata and to control message delivery and acknowledgment.

  • Consumer API: This API provides classes and methods for consuming messages from Kafka topics. It allows developers to subscribe to one or more topics, receive messages in batches or individually, and process messages using custom logic.

  • Streams API: This API provides a high-level abstraction for building real-time data processing applications that consume, transform, and produce data streams from Kafka topics.

  • Connector API: This API provides a framework for building connectors that can transfer data between Kafka topics and external data systems, such as databases, message queues, and cloud storage services.

  • Admin API: This API provides functions for managing Kafka topics, partitions, and configurations. It allows developers to create, delete, and update topics and retrieve metadata about Kafka clusters and brokers.

In addition to these core APIs, the Kafka client library includes various tools and utilities for configuring and monitoring Kafka clients and clusters, handling errors and exceptions and optimizing client performance and scalability.

Client guides

../_images/clients-java.png

Kafka Java Client

Docs | Tutorial | API | GitHub

Java producer and consumer shipped with Apache Kafka.

../_images/clients-c%2B%2B.png

Kafka C/C++ Client

Docs | Tutorial | API | GitHub

librdkafka, a C/C++ library that offers a producer and a consumer for Kafka.

../_images/clients-python.png

Kafka Python Client

Docs | Tutorial | API | GitHub

Python client that provides a high-level producer, consumer, and AdminClient.

../_images/clients-go.png

Kafka Go Client

Docs | Tutorial | API | GitHub

Go client that offers a producer and a consumer for Kafka.

../_images/clients-dotnet.png

Kafka .NET Client

Docs | Tutorial | API | GitHub

.NET client that provides a high-level producer, consumer and AdminClient.

../_images/clients-javascript.png

Kafka JavaScript Client

Docs | Tutorial | API | GitHub

JavaScript client that provides a high-level producer, consumer and AdminClient.

Client versions and support

The following sections outline the support available for each client.

Java client support

The matrix shown below follows the same support timeline as mentioned in the Confluent Platform and Apache Kafka Compatibility matrix. The Kafka clients are available for download on the org.apache.kafka/kafka-clients site.

  • The Kafka client version matches and maps to the version of Kafka that supports it. To learn more, see the Apache Kafka Clients Maven Repository.

  • Confluent supports Kafka clients included with new releases of Kafka in the interval before a corresponding Confluent Platform release, and when connecting to Confluent Cloud.

    For example, on May 1, 2024, Confluent would support Java clients 3.7.x even though the corresponding Confluent Platform release, 7.7.x would not be released on May 1, 2024.

  • When choosing which JDK to use with your client, you should use the newest long-term support (LTS) version unless you have a compelling architectural reason to do otherwise.

The following table lists the supported client versions:

Kafka Java Client Version

JDK Supported

Confluent Platform Version

Release Date

Standard End of Support [1]

Platinum End of Support [2]

4.1.x

21, 17, 11 [3]

September 4, 2025

September 4, 2027

September 4, 2028

4.0.x

21, 17, 11, 8 [3]

8.0.x

March 18, 2025

March 18, 2027

March 18, 2028

3.9.x

21, 17, 11, 8 [3]

7.9.x

Feb 19, 2025

Feb 19, 2027

Feb 19, 2028

3.8.x

21, 17, 11, 8 [3]

7.8.x

July 26, 2024

July 26, 2026

July 26, 2027

3.7.x

21, 17, 11, 8 [3]

7.7.x

February 27, 2024

February 27, 2026

February 27, 2027

3.6.x

17, 11, 8 [3]

7.6.x

October 11, 2023

October 11, 2025

October 11, 2026

3.5.x

17, 11, 8 [3]

7.5.x

August 25, 2023

August 25, 2025

August 25, 2026

3.4.x

17, 11, 8 [3]

7.4.x

May 4, 2023

May 4, 2025

May 4, 2026

3.3.x

17, 11, 8

7.3.x

November 4, 2022

November 4, 2024

November 4, 2025

The following versions are no longer supported:

Kafka Java Client Version

Release Date

Standard End of Support

Platinum End of Support

3.2.x

July 6, 2022

July 6, 2024

July 6, 2025

3.1.x

April 5, 2022

April 5, 2024

April 5, 2025

3.0.x

October 27, 2021

October 27, 2023

October 27, 2024

2.8.x

June 8, 2021

June 8, 2023

June 8, 2024

2.7.x

February 9, 2021

February 9, 2023

February 9, 2024

2.6.x

September 24, 2020

September 24, 2022

September 24, 2023

2.5.x

April 24, 2020

April 24, 2022

April 24, 2023

2.4.x

January 10, 2020

January 10, 2022

January 10, 2023

2.3.x

July 19, 2019

July 19, 2021

July 19, 2022

2.2.x

March 28, 2019

March 28, 2021

March 28, 2022

2.1.x

December 14, 2018

December 14, 2020

December 14, 2021

2.0.x

July 31, 2018

July 31, 2020

July 31, 2021

1.1.x

April 16, 2018

April 16, 2020

April 16, 2021

If your client’s version is not listed and your testing shows it runs, running it in production is a risk. Confluent does not support clients running unsupported versions. If you decide to risk continuing with an unsupported client version, you may find information and help in the Confluent Community.

librdkafka and derived client support

librdkafka is an open source community project available at: https://github.com/confluentinc/librdkafka.

Confluent maintains its own official, signed set of binaries for librdkafka, available to you here: https://packages.confluent.io/clients/.

Programming Language

Library Name

Documentation

C/C++ Client

librdkafka

Kafka C/C++ Client

Go Client

confluent-kafka-go

Kafka Go Client

.NET Client

confluent-kafka-dotnet

Kafka .NET Client

Python Client

confluent-kafka-python

Kafka Python Client

JavaScript Client

confluent-kafka-javascript

Kafka Javascript Client

librdkafka Client Version

Release Date

Standard End of Support

Platinum End of Support

2.11.x

July 3, 2025

July 3, 2027

July 3, 2028

2.10.x

April 17, 2025

April 17, 2027

April 17, 2028

2.9.x

April 1, 2025

April 1, 2027

April 1, 2028

2.8.x

January 7, 2025

January 7, 2027

January 7, 2028

2.7.x

December 21, 2024

December 21, 2026

December 21, 2027

2.6.x

October 12, 2024

October 12, 2026

October 12, 2027

2.5.x

July 10, 2024

July 10, 2026

July 10, 2027

2.4.x

May 7, 2024

May 7, 2026

May 7, 2027

2.3.x

October 26, 2023

October 26, 2025

October 26, 2026

2.2.x

July 13, 2023

July 13, 2025

July 13, 2026

2.1.x

April 6, 2023

April 6, 2025

April 6, 2026

2.0.x

January 24, 2023

January 24, 2025

January 24, 2026

1.9.x

June 16, 2022

June 16, 2024

June 16, 2025

1.8.x

September 22, 2021

September 22, 2023

September 22, 2024

1.7.x

August 8, 2021

August 8, 2023

August 8, 2024

1.6.x

February 21, 2021

February 21, 2023

February 21, 2024

  • An end-of-support date is based on the first release of the specified minor version. The support date windows apply to that minor version and any maintenance/patch versions that come under the minor version. For example, 1.9.0 and 1.9.1 would have the same support windows as specified for 1.9.x.

  • The two-year support policy is standard. End of support is extended one year for Platinum support agreements.

Client examples

To learn how to build Kafka clients apps using your favorite language, including Java, .NET, Python, JavaScript, C/C++, and Go, see Kafka Client Examples for Confluent Platform.

Note

Confluent recommends upgrading to the latest client since current fixes are generally not found in older clients.

Supported Confluent Platform features for Kafka clients

The following tables describes the client support for various Confluent Platform features.

Feature

C/C++

Go

Java

.NET

Python

Admin API

Yes

Yes

Yes

Yes

Yes

Control Center (Legacy) metrics integration

Yes

Yes

Yes

Yes

Yes

Custom partitioner

Yes

No

Yes

No

No

Exactly Once Semantics

Yes

Yes

Yes

Yes

Yes

Idempotent Producer

Yes

Yes

Yes

Yes

Yes

Kafka Streams

No

No

Yes

No

No

Record Headers

Yes

Yes

Yes

Yes

Yes

SASL Kerberos/GSSAPI

Yes

Yes

Yes

Yes

Yes

SASL PLAIN

Yes

Yes

Yes

Yes

Yes

SASL SCRAM

Yes

Yes

Yes

Yes

Yes

SASL OAUTHBEARER

Yes

Yes

Yes

Yes

Yes

Simplified installation

Yes

Yes

Yes

Yes

Yes

Schema Registry

Yes

Yes

Yes

Yes

Yes

Topic Metadata API

Yes

Yes

Yes

Yes

Yes