Deadlock is when two or more processes are unable to proceed because each is waiting for the other to do something, like release a lock. It's the software equivalent of two people who reach a door at the same time and say "After you... no, after you..." and stand there forever, except it's way less entertaining when it happens in your production systems.
"We pushed the new messaging feature to prod, but started seeing deadlocks when two users tried to send each other a message at the same time - guess we should have caught that in code review, oops!"
"I was trying to impress the new hire with my multithreaded coding skills, but ended up creating a deadlock that froze the whole app - smooth move, 10X engineer."
Martin Kleppman provides an in-depth look at the challenges of distributed locking and the pitfalls of Redis' Redlock algorithm in his blog post "How to do distributed locking": https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html
For a more academic take, "Leases: An Efficient Fault-Tolerant Mechanism for Distributed File Cache Consistency" by Gray and Cheriton digs into the theory behind distributed locking: https://dl.acm.org/doi/10.1145/74850.74870
And if you really want to impress your fellow engineers, casually mention that you've read the ZooKeeper O'Reilly book to deeply understand a real-world distributed locking system: https://www.oreilly.com/library/view/zookeeper/9781449361297/
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.