Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 16 additions & 11 deletions modules/develop/pages/kafka-clients.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
:page-topic-type: reference
:personas: developer
:learning-objective-1: Identify which Kafka clients are validated with Redpanda
:learning-objective-2: Identify unsupported Kafka features when integrating with Redpanda
:learning-objective-2: Identify Kafka compatibility exceptions when integrating with Redpanda
// tag::single-source[]

Redpanda is compatible with Apache Kafka® versions 0.11 and later, with specific exceptions noted on this page.
Apache Kafka® clients developed for Kafka protocol version 0.11 or later work with Redpanda with minimal or no changes to your application. This page identifies which clients are validated and calls out any exceptions.

Use this reference to:

Expand All @@ -18,7 +18,7 @@ Use this reference to:

== Kafka client compatibility

Clients developed for Kafka versions 0.11 or later are compatible with Redpanda. The Apache Kafka Java client at version 4.x is validated against Redpanda using the ducktape and chaos test suites; other clients in the table here remain compatible with the Kafka protocol versions they have always supported. Modern clients auto-negotiate protocol versions or use an earlier protocol version accepted by Redpanda brokers.
Redpanda validates the Apache Kafka Java client and a set of widely used non-Java clients, at their current versions that support Kafka 4.x, using the ducktape and chaos test suites. Validation confirms connectivity and correctness across core Kafka APIs, such as produce, consume, and transaction operations, at current client versions. Modern clients auto-negotiate protocol versions or use an earlier protocol version accepted by Redpanda brokers.

TIP: Always use the latest supported version of a Kafka client.

Expand All @@ -31,13 +31,18 @@ The following clients have been validated with Redpanda.
| https://github.com/apache/kafka[Apache Kafka Java Client^]

| C/C{pp}
| https://github.com/edenhill/librdkafka[librdkafka^]
| https://github.com/confluentinc/librdkafka[librdkafka^]

| Go
| https://github.com/twmb/franz-go[franz-go^]
a|
* https://github.com/twmb/franz-go[franz-go^]
* https://github.com/confluentinc/confluent-kafka-go[confluent-kafka-go^]
* https://github.com/IBM/sarama[Sarama^]

| Python
| https://pypi.org/project/kafka-python-ng[kafka-python-ng^]
a|
* https://github.com/dpkp/kafka-python[kafka-python^]
* https://github.com/confluentinc/confluent-kafka-python[confluent-kafka-python^]

| Rust
| https://github.com/kafka-rust/kafka-rust[kafka-rust^]
Expand All @@ -49,15 +54,15 @@ a|

|===

Clients that have not been validated by Redpanda Data, but use the Kafka protocol, remain compatible with Redpanda subject to the limitations in the next section (particularly those based on librdkafka, such as confluent-kafka-dotnet or confluent-python).
Clients that have not been validated by Redpanda Data, but use the Kafka protocol, remain compatible with Redpanda subject to the limitations in the next section (particularly those based on librdkafka, such as confluent-kafka-dotnet).

If you find a client that does not work with Redpanda, reach out in the https://redpanda.com/slack[Redpanda community Slack^].

== Unsupported Kafka features
== Compatibility exceptions

Redpanda does not support the following Kafka features:
Redpanda is compatible with the Kafka protocol, with the following exceptions:

* Multiple SCRAM mechanisms simultaneously for SASL users. For example, a user cannot have both a `SCRAM-SHA-256` and a `SCRAM-SHA-512` credential. Redpanda supports only one SASL/SCRAM mechanism per user: either `SCRAM-SHA-256` or `SCRAM-SHA-512`.
* Multiple SCRAM mechanisms simultaneously for SASL users are not supported. For example, a user cannot have both a `SCRAM-SHA-256` and a `SCRAM-SHA-512` credential. Redpanda supports only one SASL/SCRAM mechanism per user: either `SCRAM-SHA-256` or `SCRAM-SHA-512`.
+
ifndef::env-cloud[]
For details, see xref:manage:security/authentication.adoc#sasl[Configure SASL authentication].
Expand All @@ -72,7 +77,7 @@ ifdef::env-cloud[]
endif::[]
ifndef::env-cloud[]
+
* Quotas per user for bandwidth and API request rates. However, xref:manage:cluster-maintenance/manage-throughput.adoc#client-throughput-limits[quotas per client and per client group] using AlterClientQuotas and DescribeClientQuotas APIs are supported.
* The Kafka request rate quota (`request_percentage`), which limits the share of broker request-handling capacity a client can consume, is not supported. Redpanda supports byte-rate (`producer_byte_rate`, `consumer_byte_rate`) and topic-mutation (`controller_mutation_rate`) quotas, which you can apply xref:manage:cluster-maintenance/manage-throughput.adoc#client-throughput-limits[per user, per client, or per client group].
endif::[]
+
* https://cwiki.apache.org/confluence/display/KAFKA/KIP-890[KIP-890^] (Transactions Server-Side Defense): Redpanda does not implement the server-side portion of KIP-890, which addresses transaction errors specific to Kafka's replication model. Redpanda's implementation of transactions is not susceptible to this class of errors. When connecting to Redpanda, Kafka 4.x clients detect that Transactions V2 is unsupported and fall back to the original transaction protocol (per-transaction epoch bumping is part of V2 and does not apply).
Expand Down
Loading
Loading