After the producer pack, the Kafka Simulator v1.2 release turns to the read side and its single most misunderstood event: the rebalance. This pack adds 10 new scenarios, bringing the curriculum to 33 of 125.

What’s in v1.2

A consumer group is a coordination problem wearing a simple API. v1.2 makes the coordination visible:

  • Assignment strategiesrange, roundrobin, sticky and cooperative-sticky side by side, so you can see which ones stop the world and which ones move only the partitions they must.
  • Static membership (KIP-345) — why a member that restarts within session.timeout.ms keeps its assignment and triggers no rebalance, and what happens when it stays down too long.
  • The two timeoutssession.timeout.ms versus max.poll.interval.ms: one is about heartbeats, the other about a consumer that is alive but stuck in processing. They fail differently, and the simulator shows both.
  • Stall and resume — a consumer that stops polling, gets evicted, and rejoins — and exactly which partitions move when it does.

The rebalance is hard to teach because it only makes sense as a sequence: revoke, assign, resume. Static diagrams collapse that sequence into a single arrow. Here you can scrub through it and see ownership change hands one partition at a time.

Why this matters

Most production consumer incidents are really rebalance incidents — a deploy that looks like an outage, a max.poll.interval.ms that is too short for a slow batch, a sticky assignor that quietly moves more than expected. Seeing the rebalance move, at the speed you choose, is the fastest way to build the intuition that makes those incidents obvious in hindsight.

Open the simulator, add and kill consumers, and watch the group re-form.