Hazelcast and ZooKeeper
Latest stable Based on Leader release 0.4.0
Compare TTL map ownership with session-bound Curator recipes.
Hazelcast
Section titled “Hazelcast”The Hazelcast backend uses IMap.putIfAbsent with TTL and owner-conditional remove; it does not require the CP Subsystem. Group election models slots as separate map keys. This favors existing Hazelcast estates, but map backups and cluster split behavior must match the workload’s risk.
ZooKeeper
Section titled “ZooKeeper”The ZooKeeper backend uses Curator InterProcessMutex and InterProcessSemaphoreV2. Ownership is session-based rather than a TTL derived from leaseTime. Coroutine single-leader acquisition and release stay on a call-scoped single thread because Curator ownership is thread-sensitive.
Choice
Section titled “Choice”Choose Hazelcast for an existing data-grid cluster and explicit TTL semantics. Choose ZooKeeper when session-bound coordination and Curator operations are already understood. Test cluster partition and session expiry, not only happy-path contention.