When group membership changes (consumer joins/leaves/crashes), the Group Coordinator broker triggers a rebalance. In the classic (Eager) protocol, ALL consumers stop fetching, revoke all assignments, and wait for the coordinator to redistribute partitions. This 'stop-the-world' pause is why frequent rebalances are painful in production. The new Incremental Cooperative Rebalancing (ICRE) only revokes necessary partitions, keeping unaffected consumers running.
Key configuration
partition.assignment.strategy=CooperativeStickyAssignor — use ICRE (Kafka 2.4+)
group.instance.id=my-consumer-1 — static membership (reduce rebalances on restart)
session.timeout.ms=45000 — time before dead consumer is detected