Produce committed. Healthy: three replicas of every partition are in sync, so the producer's acks=all write commits.
broker-2 hard kill. broker-2 is offline. ISR shrinks on every partition it replicated to.
Leader re-elected. broker-2 led partition-1, so the controller moved leadership to broker-1. Two replicas are still in sync, which meets min.insync.replicas=2, so acks=all writes still commit.
broker-3 hard kill. Below min.insync.replicas - ISR is down to 1. Any acks=all write would now be refused with NotEnoughReplicas until a replica returns.
Recovery (broker-2 restart). broker-2 rejoined; ISR is back to 2 on every partition. broker-3 is still down.
Models Apache Kafka 4.4. Every run is seeded, so it replays the same way.
136 scenarios, plus free play (single-DC to stretched 3-DC).
Free, with no signup and no backend: everything runs in your browser.
Watch acks=all cross the durability boundary.
RF=3, min.insync.replicas=2, acks=all. Kill one broker; the cluster
degrades but writes still commit. Kill a second; durability cannot
be satisfied, and produce fails with NotEnoughReplicas. The figure above
is visualized from a real simulator run: it is the simulator's own canvas
at each frame of scenario 03.2.1, drawn when the site is built. Below is
what the second kill leaves in the log and in the metrics.
[t+14.802] produce_request → orders/p1
[t+14.803] leader: broker-1 (epoch 3)
[t+14.803] isr: [broker-1]
[ERROR] NotEnoughReplicas - acks=all needs 2 in-sync replicas,
but only 1 is currently in ISR.
Metric
Δ
Was
Now
UnderReplicatedPartitions
+3
0
3
IsrShrinksPerSec
+1.2
0.0
1.2
FailedProduceRequestsPerSec
+4.2
0.0
4.2
LeaderElectionRateAndTimeMs
-
0
3, 38ms
136 scenarios, each checked against a recorded run.
These 136 scenarios cover every pack shipped through v2.0 - Governance, queues & capstones - the complete 136-scenario library.
The changelog lists what each
pack added.
Visualize your own Kafka cluster in the playground.
monedula-sim-link takes a read-only snapshot of a real Kafka cluster and
prints a playground link that opens the simulator shaped like it. Its MCP
server lets an AI agent build the same links.
Hard kill, graceful shutdown, restart, slow follower, network partition
Real Kafka metric names, directionally correct
Not modeled
GC pauses, OS page cache, network buffers, byte-exact sizes
SASL, mTLS, encrypted transport - the auth handshake & wire crypto (ACL/RBAC authorization itself is modeled)
Kafka Streams & Connect - core broker/client protocol only
New in Kafka 4.4 - share-group dead-letter queues (KIP-1191) and delayed tiered-storage upload (KIP-1241)
Magnitudes of metric movement - calibrated direction, illustrative scale
Simplified. 28 behaviors differ from Kafka 4.4 on purpose, such as
batch.size counting records and timeouts shortened so a scenario plays in seconds, and the
scenarios say so where it matters. See the fidelity page.
Modeled baseline: Apache Kafka 4.4. Not for production-as-is.
Part of Monedula Flock
The same people build tools for real clusters.
The simulator is where we explain Kafka. These are what we reach for when
the cluster is not a simulation.
monedula-gitops GitOps for Apache Kafka: topics, access, quotas, schemas, SCRAM users and Confluent RBAC, from a CLI or a Kubernetes operator.
monedula-acl-rbac-converter A CLI that converts Apache Kafka ACLs into Confluent RBAC role bindings through a checksummed plan and verifies effective access before any ACL is deleted.
monedula-metrics-reporter A Kafka MetricsReporter plugin that ships broker, JVM and KIP-714 client metrics over OTLP; a collector outage never blocks Kafka.
monedula-sim-link A read-only Go CLI that turns a real Kafka cluster into a shareable Kafka Simulator link, with an MCP server for AI agents.
Nothing about your scenarios or actions is sent anywhere. The site counts page views with cookieless analytics (GoatCounter), as every page on monedula.dev does.
Which Kafka version does it model?
Apache Kafka 4.4.
How faithful is it?
It models how Kafka behaves, approximates some things by their effect, and leaves others out, such as GC pauses and the page cache. The fidelity page lists what is modeled, approximated and left out.
Can an application connect to it like a Kafka emulator?
No. It models how a cluster behaves; it does not speak the Kafka protocol. For a local broker, run Apache Kafka in Docker.
Yes. On a phone the cluster is drawn as a vertical stack you can pinch to zoom, the details open in a bottom sheet that always shows the current step, and the secondary actions fold into a menu in the top bar.
How often do new packs ship?
The simulator grows in numbered releases, each a themed pack of scenarios and free-play features. The roadmap lists every version and its theme.
Built by Monedula. Apache Kafka and Kafka are trademarks
of The Apache Software Foundation. Monedula Kafka Simulator is an
independent educational tool and is not endorsed by or affiliated
with The Apache Software Foundation.