conduktor.io ↗

Kafka ConsumerGroupHeartbeat Changelog — Protocol Version History

What is ConsumerGroupHeartbeat?

The new consumer protocol (KIP-848) combines liveness, subscription updates, and incremental assignment acknowledgment into a single recurring heartbeat. Unlike classic JoinGroup/SyncGroup, this protocol supports incremental partition assignment, avoiding stop-the-world rebalances in large consumer groups.

VersionKafkaChanges
ConsumerGroupHeartbeatRequest
v03.5
+ GroupId string
+ MemberId string
+ MemberEpoch int32
+ InstanceId string
+ RackId string
+ RebalanceTimeoutMs int32
+ SubscribedTopicNames []string
+ ServerAssignor string
+ TopicPartitions []TopicPartitions
+ TopicId uuid
+ Partitions []int32
~ Flexible encoding enabled FLEXIBLE
v14.0
+ SubscribedTopicRegex string
adds SubscribedTopicRegex (KIP-848), and requires the consumer to generate their own Member ID (KIP-1082)
ConsumerGroupHeartbeatResponse
v03.5
+ ThrottleTimeMs int32
+ ErrorCode int16
+ ErrorMessage string
+ MemberId string
+ MemberEpoch int32
+ HeartbeatIntervalMs int32
+ Assignment Assignment
+ TopicPartitions []TopicPartitions
+ TopicId uuid
+ Partitions []int32
~ Flexible encoding enabled FLEXIBLE
v14.0No changes