Suppose I have a znode, say /Me, and have three nodes A, B and C who have
set watches on this znode. Now suppose some process changes some value on
/Me then watches get delivered to A, B and C. Now if at that instant of time
C were down I could always read the znode on coming back up. However if C
were partitioned away would the watch be delivered in a guaranteed fashion
when the partition heals? Or are watches best effort delivery?
If a znode is changed N times am I going to get N watches delivered one for
each change or could I be in a situation where I could get only a few
watches but the final change will be delivered to me. The reason for this is
that I have a situation where I set a watch on znode /Parent underneath
which many znodes /Parent/Child-i could be added one per process in my
cluster on startup. I need to get all the znodes under /Parent when startup
is complete. Am I guaranteed to get the watch which contains all the
children provided all the processes do successfully put an entry in ZK. Is
this clear? If not I can try to articulate it better.