Left this comment in your live chat, this doesn't appear to have any provision for supporting fencing. This means it will not work under many common failure scenarios.<p><a href="https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html" rel="nofollow">https://martin.kleppmann.com/2016/02/08/how-to-do-distribute...</a>
We built Locklock mainly because simple patterns of distributed locking kept coming up in our system designs.<p>The common use case is ensuring multiple components of a distributed system take turns accessing a shared resource.<p>A special case of that is guaranteeing a particular operation takes place at most once. For example, some AWS services guarantee at-least-once delivery, but sometimes consequences of these events need to execute exactly once. To accomplish this, simply acquire a lock for the identifier representing the originating event and don't release it.<p>Our secondary motivation was to unify locking logic across components of a distributed system, which may be written using different programming languages or deployed accross multiple cloud providers. By using Locklock, they only need to know how to communicate with a simple REST API.<p>Would really appreciate feedback from the community!