The New Protocol (KIP-848)

The New Consumer Group Protocol (KIP-848)

KIP-848, generally available since Kafka 4.0 129 , moves assignment into the broker. Members send heartbeats (every 5 s by default, set by the broker); the coordinator computes a target assignment with a server-side assignor (uniform by default) and moves each member toward it independently, with no group-wide barrier. It is opt-in (group.protocol=consumer) in Java and in librdkafka, production-ready there since confluent-kafka 2.12.0 (October 2025); Kafka 4.3 logs a recommendation to switch when a consumer uses the classic protocol (KIP-1274).

Output of 40
  0.0s A assigned [0, 1, 2]
 10.2s A revoked  [2]
 10.2s A assigned []
 11.2s B assigned [2]
...

Under rebalance_demo.py consumer, A gave up only partition 2 and kept consuming 0 and 1. The move waited for the heartbeat cycle, about five seconds, a fair price for never stopping the group. Session timeouts, heartbeat intervals and assignors are broker or group settings here; custom client-side assignors are not supported.