checkout
→ orders · 3/s · acks=all
A few keys
sent 0 · acked 0 · failed 0
Three brokers, two topics, two consumer groups, all running right here. Take a guided scenario, or break things yourself: stop a broker, cut its power, add a consumer, drag the timeline back to see it again, or type kafka-topics --describe in the terminal.
Short stories played on a live cluster, taken from Kafka design documents and loss tests. At each step, guess what will happen, then watch it happen.
Follow one record from the producer to three brokers to a consumer.
The leader confirms a write no follower has, then dies.
With min.insync.replicas=1, "all" can mean one broker.
Availability or durability, when the only in-sync replica dies.
Followers used to cut back to their own high watermark. Watch why that was wrong.
Followers ask the leader where their epoch ended instead of trusting their own HW.
Two replicas end up with different records at the same offset, and both look in sync.
Epochs keep the replicas identical, though the unflushed write is still gone.
Two groups get a new member at the same moment. One stops, one keeps reading.
Clean shutdown vs crash, and why at-least-once means duplicates.
Same key, same partition; until the partition count changes.
Old data is deleted on a schedule, read or not; compaction keeps the latest per key.
→ orders · 3/s · acks=all
A few keys
sent 0 · acked 0 · failed 0
→ orders · 2/s · acks=1
No keys (sticky)
sent 0 · acked 0 · failed 0
→ profiles · 1.5/s · acks=all
A few keys
sent 0 · acked 0 · failed 0
Running
Running
Running
No partitions (more members than partitions, or rebalancing)
No partitions (more members than partitions, or rebalancing)
No partitions (more members than partitions, or rebalancing)
Click a record to follow its journey.
00000000000000000000.log0 records0 B.index .timeindexown HW 0
00000000000000000000.log0 records0 B.index .timeindexown HW 0
00000000000000000000.log0 records0 B.index .timeindexHW: consumers read below this line · LEO: next offset to write · only in the page cache · differs from the leader at the same offset
The concepts behind what you see above. They also live under Notes, tagged #kafka.