📄️ Distributed Lock
Distributed locking is needed when we want to have locks distributed across multiple nodes to avoid having a single point of failure. As the reference implementation, we can take Relock.
📄️ Semaphore
Semaphore allows you to limit the number of processes sharing access to a resource.