---
title: "Kafka Simulator v1.2 — consumers and the rebalance"
date: 2026-07-30T00:00:00.000Z
author: "michal"
excerpt: "Consumer groups, assignment strategies, static membership and the two timeouts that decide when a member is gone. Ten new scenarios that make the rebalance — Kafka's most misunderstood moment — something you can watch instead of guess at."
---
After the producer pack, the [Kafka Simulator](/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 strategies** — `range`, `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 timeouts** — `session.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](/kafka-simulator/), add and kill consumers, and watch the group re-form.