Skip to content

Broker version compatibility

Magnus Edenhill edited this page May 7, 2016 · 13 revisions

librdkafka supports all released Apache Kafka broker versions since 0.8.0.0.0, but not all features may be available on all broker versions since some features rely on newer broker functionality.

Apache Kafka version 0.10.0.0 adds support for KIP-35 - querying the broker for supported API request types and versions - allowing the client to figure out what features it can use. But for older broker versions there is no way for the client to reliably know what the broker supports.

This API version query is currently disabled by default (api.version.request=false) in librdkafka (as of May 2016) since it does not play nicely with broker version 0.9.0.x (due to a broker bug).

Depending on what broker version you are using, please configure your librdkafka based client as follows:

Broker version >= 0.10.0.0 (or trunk)

api.version.request=true

Broker versions 0.9.0.x

api.version.request=false   # default, not need to set (yet)
broker.version.fallback=0.9.0.x  (the exact 0.9.0.. version you are using)

Broker versions 0.8.x.y

api.version.request=false   # default, not need to set (yet)
broker.version.fallback=0.8.x.y  (your exact 0.8... broker version)

NOTE: As more users move top broker version >= 0.10.0.0 the default value of api.version.request will be changed to true in librdkafka. Please read future release changelogs to know when this happens since it will affect users of <0.10.0 brokers.