Upgrading Apache Kafka Clients Just Got Easier
Jul 18, 2017Colin McCabe

Summary
This post introduces bidirectional client compatibility for Apache Kafka, enabled by KIP-35 and KIP-97. It explains how newer clients can communicate with older brokers and vice-versa, simplifying upgrades. The technical implementation relies on API versioning and the ApiVersionsRequest mechanism, where clients query brokers for supported API versions. This allows for independent client and broker upgrades, reducing downtime and operational overhead. The post also highlights the `api.version.request` configuration for source-available clients and introduces the `kafka-broker-api-versions.sh` command-line tool for inspecting broker API support.
More from the Kafka Client-Broker Compatibility trail
- 12 Programming Languages Walk into a Kafka Cluster… | Confluent
- The First Annual State of Apache Kafka® Client Use Survey | Confluent
- Log Compaction | Highlights in the Apache Kafka and Stream Processing Community | December 2016 | Confluent
- Announcing Apache Kafka 0.9.0.1 and Confluent Platform 2.0.1 | Confluent
- 290 Reasons to Upgrade to Apache Kafka 0.9.0.0 | Confluent