Compatibility Matrix - Apache Kafka - Apache Software Foundation DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account. Log in Linked Applications Loading… Apache Software Foundation Spaces Hit enter to search Help Online Help Keyboard Shortcuts Feed Builder What’s new What’s new About Confluence Log in Apache KafkaEdit space details Pages Blog Space shortcuts Retrospectives Child pages Index Compatibility Matrix Browse pagesConfigureSpace tools Attachments (0) Page History Resolved comments Page Information View in Hierarchy View Source Export to PDF Export to Word Copy Page Tree Pages Index Jira links Compatibility Matrix Created by Ewen Cheslack-Postava, last updated by Matthias J. Sax on Sep 24, 2019 3 minute read KIP-35 - Retrieving protocol version introduced a mechanism for dynamically determining the functionality of a Kafka broker and KIP-97: Improved Kafka Client RPC Compatibility Policy introduced a new compatibility policy and guarantees for the Java client. Previously, the general rule was that the Kafka broker a client interacted with was required to be a newer version than the client. Now, newer versions of the Java clients and other clients that support KIP-35 such as librdkafka are able to fall back to older request types or throw appropriate errors if functionality is not available. This flexibility is a big win for users, who now have much more flexibility in adopting new client versions without requiring broker upgrades first. This is especially beneficial for client-side only bug fixes or improvements that don't require any additional support, both in user applications and in libraries/frameworks like Kafka Connect and Kafka Streams. However, it also complicates compatibility, especially while users may still be running versions of the clients from before this support existed. The goal of this page is to provide an easy reference to understand what clients will work with a given version of the broker. This document only includes information for brokers since the introduction of KIP-35, which was added in 0.10.0.0. For earlier versions, you can either assume the previous policy applies or refer to the specific client documentation for details of how it supports multiple broker versions (usually via configuration). To keep the table simple, we only break compatibility down based on Java & KIP-35-enabled clients. Exact compatibility for KIP-35 clients will depend on when support was added. Here is the version when support was added for some popular clients: librdkafka (and all wrappers): 0.10.0.0 kafka-python: 0.10.0.0 Note that while clients have different versioning schemes, all the data here is based on Kafka releases. If versions differ, you'd need to map these to specific releases for the individual clients.Broker 0.10.0 Basic client compatibility: Java: clients <= 0.10.0 or >= 0.10.2 KIP-35 enabled clients: any version Kafka Streams: version 0.10.0 Versions >= 0.10.1 not supported because they require CreateTopics support introduced in 0.10.1 Kafka Connect: versions <= 0.10.0 or >= 0.10.2 Features that newer clients might notice missing: AdminClient requests Topics createTopics deleteTopics createPartitions ACLs createAcls describeAcls deleteAcls Configs describeConfigs alterConfigs Log Dirs describeLogDirs describeReplicaLogDirs alterReplicaLogDirsBroker 0.10.1 Basic client compatibility: Java: any version KIP-35 enabled clients: any version Kafka Streams: versions < 0.11.0, versions 0.11.0.x with EOS turned off versions: 2.0.x, 2.1.x, and 2.2.0 with EOS turned off without message headers note: message format 0.10+ is required versions 2.2.1, 2.3.0, and newer are not supported (because they use headers internally, which require broker 0.11.0 and message format 0.11)) Kafka Connect: versions <= 0.10.1 Features that newer clients might notice missing: AdminClient Topics createPartitions ACLs createAcls describeAcls deleteAcls Configs describeConfigs alterConfigs Log Dirs describeLogDirs describeReplicaLogDirs alterReplicaLogDirsBroker 0.10.2 Basic client compatibility: Java: any version KIP-35 enabled clients: any version Kafka Streams: versions < 0.11.0, versions 0.11.0.x with EOS turned off versions 2.0.x, 2.1.x, and 2.2.0 with EOS turned off without message headers note: message format 0.10+ is required versions 2.2.1, 2.3.0, and newer are not supported (because they use headers internally that require broker 0.11.0 and message format 0.11) Kafka Connect: any version Features that newer clients might notice missing: AdminClient Topics createPartitions ACLs createAcls describeAcls deleteAcls Configs describeConfigs alterConfigs Log Dirs describeLogDirs describeReplicaLogDirs alterReplicaLogDirsBroker 0.11.0 Basic client compatibility: Java: any version KIP-35 enabled clients: any version Kafka Streams: any version note: since version 0.11.0, if EOS is used, message format 0.11+ is required note: since version 2.0, message format 0.10+ is required note: since version 2.0, if message headers are used, message format 0.11+ is required note, since 2.2.1 and 2.3.0 message format 0.11+ is required Kafka Connect: any version Features that newer clients might notice missing: Topics: createPartitions Log Dirs describeLogDirs describeReplicaLogDirs alterReplicaLogDirsBroker 1.0.0 Basic client compatibility: Java: any version KIP-35 enabled clients: any version Kafka Streams: note: since version 0.11.0, if EOS is used, message format 0.11+ is required note: since version 2.0, message format 0.10+ is required note: since version 2.0, if message headers are used, message format 0.11+ is required note, since 2.2.1 and 2.3.0 message format 0.11+ is required Kafka Connect: any version Features that newer clients might notice missing: No labels Overview Content Tools Powered by a free Atlassian Confluence Open Source Project License granted to Apache Software Foundation. Evaluate Confluence today. Powered by Atlassian Confluence 9.2.21 Printed by Atlassian Confluence 9.2.21 Report a bug Atlassian News Atlassian {"serverDuration": 65, "requestCorrelationId": "76c8817e7507df9a"}