| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <!--#include virtual="../../includes/_header.htm" --> |
| <!--#include virtual="../../includes/_top.htm" --> |
| <div class="content"> |
| <div class="p-compatibility"> |
| <h1>Compatibility</h1> |
| With the release of Kafka 4.0, significant changes have been introduced that impact compatibility across various |
| components. To assist users in planning upgrades and ensuring seamless interoperability, a comprehensive |
| compatibility matrix has been prepared. |
| <h2 class="anchor-heading">JDK Compatibility Across Kafka Versions</h2> |
| <table> |
| <tr> |
| <th>Module</th> |
| <th>Kafka Version</th> |
| <th>Java 11</th> |
| <th>Java 17</th> |
| <th>Java 23</th> |
| </tr> |
| <tr> |
| <td>Clients</td> |
| <td>4.0.0</td> |
| <td>✅</td> |
| <td>✅</td> |
| <td>✅</td> |
| </tr> |
| <tr> |
| <td>Streams</td> |
| <td>4.0.0</td> |
| <td>✅</td> |
| <td>✅</td> |
| <td>✅</td> |
| </tr> |
| <tr> |
| <td>Connect</td> |
| <td>4.0.0</td> |
| <td>❌</td> |
| <td>✅</td> |
| <td>✅</td> |
| </tr> |
| <tr> |
| <td>Server</td> |
| <td>4.0.0</td> |
| <td>❌</td> |
| <td>✅</td> |
| <td>✅</td> |
| </tr> |
| </table> |
| <p><strong>Note: Java 8 is removed in Kafka 4.0 and is no longer supported.</strong></p> |
| |
| <h2 class="anchor-heading">Server Compatibility</h2> |
| <table> |
| <tr> |
| <th>KRaft Cluster Version</th> |
| <th>Compatibility 4.0 Server (dynamic voter)</th> |
| <th>Compatibility 4.0 Server (static voter)</th> |
| </tr> |
| <tr> |
| <td>before 3.2.x</td> |
| <td>❌</td> |
| <td>❌</td> |
| </tr> |
| <tr> |
| <td>3.3.x</td> |
| <td>❌</td> |
| <td>✅</td> |
| </tr> |
| <tr> |
| <td>3.4.x</td> |
| <td>❌</td> |
| <td>✅</td> |
| </tr> |
| <tr> |
| <td>3.5.x</td> |
| <td>❌</td> |
| <td>✅</td> |
| </tr> |
| <tr> |
| <td>3.6.x</td> |
| <td>❌</td> |
| <td>✅</td> |
| </tr> |
| <tr> |
| <td>3.7.x</td> |
| <td>❌</td> |
| <td>✅</td> |
| </tr> |
| <tr> |
| <td>3.8.x</td> |
| <td>❌</td> |
| <td>✅</td> |
| </tr> |
| <tr> |
| <td>3.9.x</td> |
| <td>✅</td> |
| <td>✅</td> |
| </tr> |
| <tr> |
| <td>4.0.x</td> |
| <td>✅</td> |
| <td>✅</td> |
| </tr> |
| </table> |
| <p><strong>Note: Can’t upgrade server from static voter to dynamic |
| voter, see <a href="https://issues.apache.org/jira/browse/KAFKA-16538">KAFKA-16538</a>.</strong></p> |
| |
| <h4>Client/Broker Forward Compatibility</h4> |
| <table> |
| <tr> |
| <th>Kafka Version</th> |
| <th>Module</th> |
| <th>Compatibility with Kafka 4.0</th> |
| <th>Key Differences/Limitations</th> |
| </tr> |
| <tr> |
| <td rowspan="3">0.x, 1.x, 2.0</td> |
| <td>Client</td> |
| <td>❌ Not Compatible</td> |
| <td>Pre-0.10.x protocols are fully removed in Kafka 4.0 (<a |
| href="https://cwiki.apache.org/confluence/x/K5sODg">KIP-896</a>). |
| </td> |
| </tr> |
| <tr> |
| <td>Streams</td> |
| <td>❌ Not Compatible</td> |
| <td>Pre-0.10.x protocols are fully removed in Kafka 4.0 (<a |
| href="https://cwiki.apache.org/confluence/x/K5sODg">KIP-896</a>). |
| </td> |
| </tr> |
| <tr> |
| <td>Connect</td> |
| <td>❌ Not Compatible</td> |
| <td>Pre-0.10.x protocols are fully removed in Kafka 4.0 (<a |
| href="https://cwiki.apache.org/confluence/x/K5sODg">KIP-896</a>). |
| </td> |
| </tr> |
| <tr> |
| <td rowspan="3">2.1 ~ 2.8</td> |
| <td>Client</td> |
| <td>⚠️ Partially Compatible</td> |
| <td> |
| More details in the <a href="/40/documentation.html#upgrade_400_notable_consumer">Consumer</a>, |
| <a href="/40/documentation.html#upgrade_400_notable_producer">Producer</a>, and |
| <a href="/40/documentation.html#upgrade_400_notable_admin_client">Admin Client</a> section. |
| </td> |
| </tr> |
| <tr> |
| <td>Streams</td> |
| <td>⚠️ Limited Compatibility</td> |
| <td> |
| More details in the <a href="/40/documentation.html#upgrade_400_notable_kafka_streams">Kafka Streams</a> section. |
| </td> |
| </tr> |
| <tr> |
| <td>Connect</td> |
| <td>⚠️ Limited Compatibility</td> |
| <td> |
| More details in the <a href="/40/documentation.html#upgrade_400_notable_connect">Connect</a> section. |
| </td> |
| </tr> |
| <tr> |
| <td rowspan="3">3.x</td> |
| <td>Client</td> |
| <td>✅ Fully Compatible</td> |
| <td></td> |
| </tr> |
| <tr> |
| <td>Streams</td> |
| <td>✅ Fully Compatible</td> |
| <td></td> |
| </tr> |
| <tr> |
| <td>Connect</td> |
| <td>✅ Fully Compatible</td> |
| <td></td> |
| </tr> |
| </table> |
| <p> |
| Note: Starting with Kafka 4.0, the <code>--zookeeper</code> option in AdminClient commands has been removed. Users must |
| use the <code>--bootstrap-server</code> option to interact with the Kafka cluster. This change aligns with the transition |
| to KRaft mode. |
| </p> |
| |
| </div> |
| <!--#include virtual="../../includes/_footer.htm" --> |
| </div> |