conduktor.io ↗

Kafka OffsetCommit Changelog — Protocol Version History

What is OffsetCommit?

Every consumer sends this after processing records to checkpoint its position into __consumer_offsets. Commit failures during rebalances (REBALANCE_IN_PROGRESS, ILLEGAL_GENERATION) are the root cause of duplicate processing in at-least-once consumers.

VersionKafkaChanges
OffsetCommitRequest
v22.2
+ RetentionTimeMs int64
adds retention time. It removes the commit timestamp added in version 1.
v32.2
are the same as version 2.
v42.2
are the same as version 2.
v52.2
- RetentionTimeMs int64
removes the retention time, which is now controlled only by a broker configuration.
v62.2
+ CommittedLeaderEpoch int32
adds the leader epoch for fencing.
v72.3
+ GroupInstanceId string
adds a new field called groupInstanceId to indicate member identity across restarts.
v82.4
~ Flexible encoding enabled FLEXIBLE
is the first flexible version.
v93.6
is the first version that can be used with the new consumer group protocol (KIP-848). The request is the same as version 8.
v104.1
+ TopicId uuid
- Name string
adds support for topic ids and removes support for topic names (KIP-848).
OffsetCommitResponse
v22.2
are the same as version 0.
v32.2
+ ThrottleTimeMs int32
adds the throttle time to the response.
v42.2
on quota violation, brokers send out responses before throttling.
v52.2
are the same as version 4.
v62.2
are the same as version 4.
v72.3
offsetCommitRequest supports a new field called groupInstanceId to indicate member identity across restarts.
v82.4
~ Flexible encoding enabled FLEXIBLE
is the first flexible version.
v93.6
is the first version that can be used with the new consumer group protocol (KIP-848). The response is the same as version 8 but can return STALE_MEMBER_EPOCH when the new consumer group protocol is used and GROUP_ID_NOT_FOUND when the group does not exist for both protocols.
v104.1
+ TopicId uuid
- Name string
adds support for topic ids and removes support for topic names (KIP-848).