Monedula Kafka Simulator
Skip to content monedula.dev Kafka simulator
§ 01 · An interactive simulator for Apache Kafka
Apache Kafka, made visible.
Change a Kafka setting, break the cluster, see exactly why<br>producers, brokers, replicas, consumers — and the metrics<br>that watch them — react the way they do.
Apache Kafka 4.3 semantics. Deterministic, seeded, replayable.<br>Browser-only — no backend, no telemetry of your scenarios.
Open the playground → 13 scenarios, free-play sandboxes, single-DC clusters.<br>No signup, runs in your browser.
In this issue<br>§ 01The brief<br>§ 02The canonical demo<br>§ 03The eight modules<br>§ 04Day-one scenarios<br>§ 05The lab<br>§ 06Fidelity & honesty
Three-broker Kafka cluster with replication factor 3<br>A producer on the left writes to a partition leader; followers<br>replicate from the leader. The in-sync replica set spans all three<br>brokers, placed across three racks. The high watermark marks the<br>committed offset.<br>below the<br>, so the screen reader sees one canonical label and we don't<br>render the same text twice.) --> producer acks=all idempotent consumer position 16 reads ≤ HW RACK-A RACK-B RACK-C broker-1 rack-a p0 p1 p2 broker-2 rack-b p0 p1 p2 broker-3 rack-c p0 p1 p2 leader (epoch 4) ISR — in-sync replicas high watermark — committed offset<br>rack-aware placement · replicas across distinct racks
seed=mon-43 · t=00:00.420 · leader · follower · LEO · HW
Fig. 1 · The simulator at rest · RF=3 · min.ISR=2 · acks=all
§ 02 · The canonical demo<br>Watch acks=all cross the durability boundary.
RF=3, min.insync.replicas=2, acks=all. Kill one broker; the cluster<br>degrades but writes still commit. Kill a second; durability cannot<br>be satisfied, and produce fails with NotEnoughReplicas.
b-1 a b-2 b b-3 c producer acks=all ack ISR=3/3 Panel I · t+0.0s · Healthy b-1 a DOWN b-3 c producer acks=all ack ISR=2/3 ✓ minISR Panel II · t+5.2s · Broker 2 dies b-1 a DOWN b-3 c producer acks=all ack ISR=2/3 ✓ minISR epoch+1 Panel III · t+9.0s · New leader b-1 a DOWN DOWN producer acks=all NotEnough Replicas Panel IV · t+14.8s · Broker 3 dies b-1 a DOWN DOWN producer acks=all NotEnough Replicas Panel V · t+15.1s · Teaching moment<br>[t+14.802] produce_request → orders/p1<br>[t+14.803] leader: broker-1 (epoch 3)<br>[t+14.803] isr: [broker-1]<br>[ERROR] NotEnoughReplicas — acks=all needs 2 in-sync replicas,<br>but only 1 is currently in ISR. MetricΔWasNow UnderReplicatedPartitions+303 IsrShrinksPerSec+1.20.01.2 FailedProduceRequestsPerSec+4.20.04.2 LeaderElectionRateAndTimeMs—03 · 38ms
§ 03 · The curriculum<br>Eight modules.<br>01 Anatomy 6 scenarios<br>02 Producers & EOS 4 scenarios<br>03 Replication & ISR coming soon · v1.3<br>04 Consumer groups 3 scenarios<br>05 Share groups coming soon · v2.0<br>06 KRaft & controllers coming soon · v1.6<br>07 Tiered storage coming soon · v1.9<br>08 Disaster recovery coming soon · v1.8
§ 04 · Day-one scenarios<br>13 scenarios, each with a frozen golden trace.
These 13 picks are the v1.0 Fundamentals starter pack — the<br>first public wave of a planned 125-scenario library, and<br>the foundations every later pack builds on. The remaining packs<br>(replication, transactions, storage, ops, chaos, multi-DC DR and the<br>platform domains) roll out on a roughly biweekly cadence; the<br>changelog tracks what has shipped<br>and what is next.
b1 b2 b3 RF=3 3 racks Anatomy baseline<br>ANATOMY<br>RF=3 across 3 racks. Read ISR, leader, follower, LEO, and HW on a healthy cluster.
acks=0 acks=1 acks=all tput / latency acks trade-off<br>PRODUCER<br>Same workload at acks=0 / 1 / all. Throughput, latency, durability — the triangle.
retry under failure idempotent=off ← dup idempotent=on Idempotence retry<br>PRODUCER<br>Retry under failure — with and without idempotence. Watch a duplicate appear, then disappear.
cleanup.policy=compact a b a c a b → c a b ⌀ latest value per key + tombstone Compaction<br>ANATOMY<br>Repeated keys to a compact topic. Then a tombstone, and the key is gone.
Browse all 13 in the playground →<br>More scenario packs coming on a roughly biweekly cadence — see the roadmap →<br>§ 05 · The lab<br>Frozen at the moment broker-2 just died.
Every scenario opens in the same playground you build free-play clusters in:<br>brokers, partitions, RF, min.ISR, racks, regions, timing and a deterministic<br>seed are all yours to set, then share by URL.
Adaptive canvas — level-of-detail, zoom, and a pinch-to-zoom mobile view that compress the cluster as it grows.<br>Frames — step every tick with a per-event inspector; entities link straight to the parts they touch.<br>WHY tab — live-state health checks explain, in plain language, why the cluster sits where it does.<br>Steps tab — a click-to-jump walkthrough of every frame, each captioned with what just happened.
Monedula<br>· KAFKA SIMULATOR<br>scenario / 03.2.1 Canonical failure<br>build · 1.0.0 ◐ light ⚐ report issue ⓘ help share scenario ↗ about ✦ Free play NEW SANDBOX CLUSTER TYPE Single DC ▾ SCENARIO LIBRARY COLLAPSE ALL ▸ Anatomy 14 ▸ Producers & EOS 23 ▸ Consumer groups 13 ▾ Replication 25 03.1.2 min.ISR boundary 03.1.3 Slow follower 03.2.1...