Distributed Locks | System design basics