Build Kafka Client Applications on Confluent Cloud

Developers can build a Producer or Consumer Client application for Confluent Cloud using a preferred programming language and a Kafka client library.

Programming languages you use to build applications that interact with Kafka provide a set of APIs and libraries. A Kafka client library provides functions, classes, and utilities that allow developers to create Kafka producer clients (Producers) and consumer clients (Consumers) using various programming languages. The primary way to build production-ready Producers and Consumers is by using your preferred programming language and a Kafka client library. The following programming languages include a client library for Kafka:

  • Java: The official Java client library supports the Producer, Consumer, Streams, and Connect APIs.

The following official Confluent clients are derived from the open source librdkafka project:

  • C/C++: A C/C++ client library supporting the Producer and Consumer APIs.
  • Python: A Python client library supporting the Producer and Consumer APIs.
  • Go: A Go client library supporting the Producer and Consumer APIs.
  • .NET: A .NET client library supporting the Producer and Consumer APIs.

Additional open-source and community-developed Kafka client libraries are available for other programming languages. Some of these include Scala, Node.js, Ruby, Rust, JMS, 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.

See Client guides for more information.

Client guides

See the following guides for details about each client.

../_images/clients-4.svg

Kafka Java Client

Docs | Tutorial | API | GitHub

Java producer and consumer shipped with Apache Kafka.

../_images/clients-5.svg

Kafka C/C++ Client

Docs | Tutorial | API | GitHub

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

../_images/clients-6.svg

Kafka Python Client

Docs | Tutorial | API | GitHub

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

../_images/clients-7.svg

Kafka Go Client

Docs | Tutorial | API | GitHub

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

../_images/clients-8.svg

Kafka .NET Client

Docs | Tutorial | API | GitHub

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

../_images/clients-9.svg

Confluent JMS Client

Docs

Allows Kafka or Confluent Platform to be used as a JMS message broker.

Client versions and support timelines

Confluent official clients are available for:

Note

  • The Kafka client version matches and maps to the version of Apache Kafka® that supports it. To learn more, see the Apache Kafka Clients Maven Repository <https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients>.
  • Confluent supports Kafka clients included with new releases of Apache Kafka® in the interval before a corresponding Confluent Platform release, and when connecting to Confluent Cloud.

Java

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.

Java clients version Release Date Standard End of Support Platinum End of Support
3.5.x August 25, 2023 August 25, 2025 August 25, 2026
3.4.x May 4, 2023 May 4, 2025 May 4, 2026
3.3.x November 4, 2022 November 4, 2024 November 4, 2025
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
  • The end of support date applies to the stated minor version, and all maintenance versions associated with that minor version. For example, support for Kafka 2.6.4 ends on September 24, 2022.
  • The two year support policy is standard. End of support is extended one year for Platinum support agreements.

librdkafka and Derived Clients

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
librdkafka Client Version Release Date Standard End of Support Platinum End of Support
2.2.0 July 13, 2023 July 13, 2025 July 13, 2026
2.1.0 April 6, 2023 April 6, 2025 April 6, 2026
2.0.2 January 24, 2023 January 24, 2025 January 24, 2026
1.9.0 June 16, 2022 June 16, 2024 June 16, 2025
1.8.0 September 22, 2021 September 22, 2023 September 22, 2024
1.7.0 August 8, 2021 August 8, 2023 August 8, 2024
1.6.1 April 27, 2021 April 27, 2023 April 27, 2024
1.6.0 February 21, 2021 February 21, 2023 February 21, 2024
  • The two year support policy is standard. End of support is extended one year for Platinum support agreements.

Kafka Client Examples

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

Note

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