A few comments: * NodeMonitor.createRootIfNotExists() should catch NodeExists. In the case of multiple clients, this is a possibility.
* I'd add a start method and create the ZooKeeper instance there. This gives users a chance to set a listener so as to receive all messages. * All ZooKeeper operations should be in some kind of retry loop. The client can lose connection to a given server but successfully reconnect to another one in the cluster. * When creating the Znode, it can succeed on the server but fail to return the result to the client. On a Disconnect/Session exception, you should retry and then call getChildren and search for your node. -JZ On 11/25/11 2:45 AM, "Olivier Van Acker" <cyberroa...@gmail.com> wrote: >I've written a example app on how to do implement leadership election in >with zookeeper >Is there anyone on the list who'd like to review my app and if it needs >improvement or not? > >the app is on github: >https://github.com/cyberroadie/zookeeper-leader > >and explained how it works on my blog: >http://cyberroadie.wordpress.com/2011/11/24/implementing-leader-election-w >ith-zookeeper/ > >Olivier