> But how long to wait? If the server is truly partitioned from ZK, then
> I'll wait forever, and the client request will be hung forever.
Curator waits for the time specified as the "connection timeout". Curator introduces three connection states, CONNECTED, SUSPENDED and LOST. When SysDisconnected is received, Curator sets the state to SUSPENDED and then issues a sync() in the background. This sync() does through Curator's normal connection management, retries, etc. If the sync() doesn't succeed within the connection timeout, Curator sets the state to LOST. How the application handles these state changes is, of course, up to the app.