A leader can keep serving after it has been cut off from the quorum. It may still think it is leader because nothing has arrived to prove otherwise. Returning its local value in that state can expose a stale read even if the write path is correct.
The missing evidence
QuorumKV's GET path uses ReadIndex. The leader first confirms authority with a quorum in its current term, obtains the commit index that bounds the read, and waits until its state machine has applied through that index. Only then does it return the value.
The mechanism is not “send reads through the leader.” Leadership is a belief held by one node. The quorum exchange supplies current evidence that the belief is still valid.
Why I did not use a lease
A time-based leader lease can avoid a quorum round trip, but it moves correctness onto bounded clock behavior. QuorumKV deliberately keeps the simpler evidence model: confirm with the quorum rather than claim a clock guarantee the project does not test.
ReadIndex changed how I think about read APIs. A read that does not append a log entry can still require distributed coordination. The question is not whether the operation mutates state; it is whether the node has enough evidence to describe current state.
Related project: QuorumKV →