Each controller election increments the controller epoch — a monotonically increasing version number. Brokers always track the latest epoch they've seen. If a broker receives a message from a controller with an older epoch, it rejects it. This fencing mechanism prevents split-brain: if an old (stale) controller sends commands, they are silently rejected by brokers who have already accepted the new controller.
Lesson 4 of 5
Controller Epochs & Fencing
Try it in the simulator
Guided scenarios for this module — the simulator opens with the exercise already running.