The Persistent/Recursive watches (ZOOKEEPER-1416) PR is ready. But, I'm concerned about an assumption I've made. I worry about event ordering regarding multiple writes from multiple clients and watchers. Here's my assumption:
If you successfully set a Persistent watcher (i.e. you get confirmation via a synchronous addWatch() completing or the callback to an asynchronous addWatch) then any future ZooKeeper calls (getData, setData, etc.) have the same guarantees as any other Watcher. ZOOKEEPER-1416 adds the persistent watchers to both the dataWatchers and childWatchers managed by DataTree. This is what all other watchers do. So, I believe it's true but we really need some confirmation from someone who knows those internals better than me. -Jordan
