Where it startedGoogle Chubby (2006)a lock service built on Paxos
The Chubby paper describes a coarse-grained lock service for loosely coupled distributed systems, replicated with Paxos. Because a lock holder can be delayed, Chubby also offers sequencers: a string naming the lock and its generation that a client passes to a server, which can check it is still valid.
Ephemeral nodesApache ZooKeeperlock recipe with ephemeral sequential znodes
ZooKeeper's documented lock recipe creates an ephemeral sequential znode per contender; the lowest number holds the lock and the others watch their predecessor. Ephemeral nodes vanish when the client's session expires, which is ZooKeeper's version of a TTL, and the sequence numbers are naturally increasing.
The great debateMartin Kleppmann and Redis (2016)are Redlock locks safe for correctness?
Kleppmann's article 'How to do distributed locking' argued that a lock with a timeout, including Redis's Redlock, cannot be safe on its own because processes can pause and clocks can jump, and that fencing tokens are required; Redis's author published a reply defending Redlock's guarantees for its intended uses. Both are widely read in interviews.
Leases in practiceetcdleases with keep-alives
etcd attaches keys to leases that expire unless the client sends keep-alives, and its lock helper builds on that. Each key carries a revision number that increases across the whole cluster, which a client can send to a storage as a fencing token.