conduktor.io ↗

Kafka ListOffsets Changelog — Protocol Version History

What is ListOffsets?

Resolves earliest, latest, or timestamp-based offsets, and powers the lag computation in kafka-consumer-groups.sh. Timestamp-based lookups map to the largest offset whose timestamp is <= the given value, which is how you rewind to a point in time after an incident.

VersionKafkaChanges
ListOffsetsRequest
v12.8
removes MaxNumOffsets. From this version forward, only a single offset can be returned.
v22.8
+ IsolationLevel int8
adds the isolation level, which is used for transactional reads.
v32.8
is the same as version 2.
v42.8
+ CurrentLeaderEpoch int32
adds the current leader epoch, which is used for fencing.
v52.8
is the same as version 4.
v62.8
~ Flexible encoding enabled FLEXIBLE
enables flexible versions.
v73.0
enables listing offsets by max timestamp (KIP-734).
v83.5
enables listing offsets by local log start offset (KIP-405).
v93.9
enables listing offsets by last tiered offset (KIP-1005).
v104.0
+ TimeoutMs int32
enables async remote list offsets support (KIP-1075)
v114.2
enables listing offsets by earliest pending upload offset (KIP-1023)
ListOffsetsResponse
v12.8
+ Timestamp int64
+ Offset int64
also adds the timestamp associated with the returned offset.
v22.8
+ ThrottleTimeMs int32
adds the throttle time.
v32.8
on quota violation, brokers send out responses before throttling.
v42.8
+ LeaderEpoch int32
adds the leader epoch, which is used for fencing.
v52.8
adds a new error code, OFFSET_NOT_AVAILABLE.
v62.8
~ Flexible encoding enabled FLEXIBLE
enables flexible versions.
v73.0
is the same as version 6 (KIP-734).
v83.5
enables listing offsets by local log start offset. This is the earliest log start offset in the local log. (KIP-405).
v93.9
enables listing offsets by last tiered offset (KIP-1005).
v104.0
enables async remote list offsets support (KIP-1075)
v114.2
enables listing offsets by earliest pending upload offset (KIP-1023)