A team is deciding whether to use Redis's Redlock algorithm (acquiring a lock across a majority of independent Redis nodes) for a correctness-critical operation — one where two holders acting at once would corrupt data. What does Redlock's quorum actually buy over a single Redis instance, and where does Martin Kleppmann's critique of it actually land?
Redlock's quorum genuinely solves a real problem a single Redis instance has: if a single instance fails over to a replica that hadn't yet received the lock key, a second client can acquire the same lock — Redlock's majority requirement across independent nodes makes that specific failure need a majority of nodes to be simultaneously wrong, which is a real, materially stronger guarantee than trusting one instance's replication timing. Kleppmann's critique isn't that Redlock's quorum arithmetic is wrong — it's that the algorithm's own "the elapsed time must be meaningfully less than the lock's validity time" check silently assumes the client's clock and process never do anything strange in between (no long GC pause, no VM freeze, no clock jump), and that Redlock as originally specified hands out no fencing token, so even a correctly-acquired Redlock can't stop a paused holder from writing stale data later. This is a real, still-debated disagreement between two people who agree on the facts and differ on how much synchrony a lock is allowed to assume — not a case where one side has been shown wrong.