Distributed Locks — ELI5

Think about a bathroom at a coffee shop. There’s only one, and multiple customers need to use it. How do you prevent two people from walking in at the same time? A lock on the door. When someone goes in, they lock the door. Everyone else waits. When they come out, the next person goes in.

A distributed lock works the same way, but for computer programs. Imagine you have five servers all trying to update the same customer record in a database. If two of them write at the exact same time, the data gets messed up. So they use a lock — a special signal that says “I’m working on this right now, everyone else wait your turn.”

The “distributed” part means the lock works across multiple computers, not just within one program. It’s like if that coffee shop had ten branches all sharing one bathroom (weird, but go with it) — the lock needs to work no matter which branch you’re at.

The tricky part: what if someone locks the bathroom and then passes out? In real life, you’d call the manager. In computer systems, the lock has a timer. If nobody unlocks it within, say, 30 seconds, it automatically unlocks so others aren’t stuck waiting forever.

Python programs typically use Redis or a database to manage these locks, since all the servers can check the same shared place to see who holds the lock.

One thing to remember: A distributed lock is a “busy” sign that all your servers can see and respect — it prevents multiple programs from stepping on each other’s toes when working on the same thing.

pythondistributed-systemsconcurrency

See Also