Skip to content
This repository has been archived by the owner on Nov 20, 2020. It is now read-only.

Broker Versions

Lev Gorodinski edited this page Jan 3, 2018 · 12 revisions

Supported protocol versions:

  • 0.9.0
  • 0.10.0 Default on Kafunk >= 0.1.13
  • 0.10.1

NOTE: Later broker versions work with earlier versions of the client. However, earlier versions of the client may not have support for particular features of the API. For example, client versions prior to v0.10.0 don't support Message timestamps. This means that the broker has to do additional work to adapt the message format so that the older client can decode it.

Configuration

A Kafka broker version can be specified in the connection configuration:

let cfg = 
  KafkaConfig.create (
    host, 
    version = Versions.V_0_10_1)
let conn = Kafka.conn cfg

Currently, the default version is 0.9.0 on Kafunk 0.1.12 and earlier, and 0.10.1 on Kafunk 0.1.13 and later. To support an explicit protocol version, the version must be configured explicitly as above.

Broker versions 0.10.0 and above support an ApiVersionsRequest which returns the versions supported for each operation. Kafunk can determine API versions automatically using this operation as follows:

let cfg = 
  KafkaConfig.create (
    host, 
    autoApiVersions = true)
let conn = Kafka.conn cfg

Note that this is only supported on versions 0.10.0 and greater.

Changes

See: A Guide To The Kafka Protocol

See: RELEASE NOTES

0.10.0

  • Added Timestamp to Message
  • Added Timestamp to ProduceResponse
  • Added ApiVersionsRequest

0.10.1

  • Dropped MaxNumberOfOffsets from OffsetRequest
  • OffsetResponse returns a single Offset rather than array.
  • Added RebalanceTimeout to JoinGroupRequest
  • Search offsets by Timestamp for messages supporting the format.
Clone this wiki locally