Design a distributed lock service (like Google Chubby or Apache ZooKeeper). Allow multiple nodes in a cluster to acquire exclusive locks on named resources. Locks must be safe (only one holder at a time), live (no deadlocks), and fault-tolerant (lock service crash doesn't corrupt lock state).