Scenario 11.0.1 · Share group queue
Kafka share groups: queue semantics with KIP-932
Two consumers share ONE partition - each acquires different offsets (KIP-932 queue semantics).
Run this scenario in the playgroundCluster ready · idle. t+0.000s
One partition, one share group with two consumers (w1, w2). Press ▶.
Open at this step: step 1, Cluster ready · idleFirst acquire. t+0.900s
w1 and w2 each acquire a DIFFERENT offset on the SAME partition - no partition assignment.
Open at this step: step 2, First acquireDraining. t+1.500s
Prior acquisitions auto-accept (acked); the next two offsets are acquired.
Open at this step: step 3, DrainingQueue drained. t+3.200s
All six records acked - the queue was shared across both consumers.
Open at this step: step 4, Queue drainedWhat you start with
Share groups (KIP-932) bring queue semantics to Kafka. In a classic consumer group a partition is owned by exactly one consumer; a share group instead lets MANY members read the SAME partition cooperatively, each acquiring a DISJOINT set of offsets. Here two workers (w1, w2) poll one partition holding six jobs.
Step by step
- Cluster ready · idle t+0.000s One partition, one share group with two consumers (w1, w2). Press ▶. Open at this step: step 1, Cluster ready · idle
- First acquire t+0.900s w1 and w2 each acquire a DIFFERENT offset on the SAME partition - no partition assignment. Open at this step: step 2, First acquire
- Draining t+1.500s Prior acquisitions auto-accept (acked); the next two offsets are acquired. Open at this step: step 3, Draining
- Queue drained t+3.200s All six records acked - the queue was shared across both consumers. Open at this step: step 4, Queue drained
The takeaway
A share group decouples consumer parallelism from partition count: several members drain a single partition as a shared work queue, each handling different records.
Embed this scenario
Paste this into a blog post, a course page or your team's docs. The scenario plays inside your page, and the link under it points readers to this walkthrough.
<iframe src="https://monedula.dev/kafka-simulator/embed/?scenario=11.0.1" title="Kafka Simulator: Share group queue" width="100%" height="520" style="border:1px solid #d0d0d0;border-radius:8px" loading="lazy"></iframe>
<p><a href="https://monedula.dev/kafka-simulator/scenarios/share-group-queue/">Kafka share groups: queue semantics with KIP-932</a></p> Further reading
KIP-932 on the Apache Kafka wiki
More in Share groups
- More Kafka consumers than partitions with share groups
- Kafka share group acquisition lock timeout and redelivery
- Kafka share consumer acknowledge: accept, release, reject
- Kafka share group poison pill: delivery limit and archiving
- Kafka share.acknowledgement.mode: implicit vs explicit
- Kafka share.acquire.mode: batch_optimized vs record_limit
- Renew a Kafka share group acquisition lock (KIP-1222)
- Kafka share group lag: SPSO, SPEO and the acked prefix