Runnable that automatically publishes commits from storage to ZK.
Get the current version of some commit key.
Get the current version of some commit key. Returns None if the znode does not exist, but throws an exception if the znode is present and unparseable. If the znode is parseable but the payload is not, returns a normal Commit where value.isLeft.
Immutable, point-in-time view of all nonempty commits.
Live-updating view of all present commits.
Live-updating view of all present commits. The first value seen by the returned Var will be a fully-initialized cache. Future values will reflect each update in the order they are seen. This behavior is backed by a Curator PathChildrenCache.
Note that absence of a commit in the map is not a guarantee of true absence of the commit. Commits can be spuriously missing due to parsing errors.
Publish a new commit to ZooKeeper.
Publish a new commit to ZooKeeper. Prevents rollbacks, when possible, using the commit's version number.
It's much more possible to prevent rollbacks when commit payloads are always nonempty. This is because empty commits are removed from ZooKeeper, which means we cannot distinguish them from commits that have simply never been published at all.
ZooKeeper-based storage and notification for each key's most current commit. This class does not implement CommitStorage because even though many method signatures are similar, it does not provide fully journaled storage. In particular, no history is kept, and commits with empty or unparseable values are not stored.