PyPI Page: http://pypi.python.org/pypi/zk_watcher
'zk_watcher' has been bumped to v0.3.1 and had nearly a complete rewrite. Though there are a ton of small changes, there are two major changes to the code.
1. We've thrown away the Zookeeper C-based bindings (zc.zk backend) and replaced them with our own 'nd_service_registry' library (based on Kazoo). This simplifies the zk_watcher code because it doesn't really do much now on its own to track Zookeeper connections or node-status's. Instead, it focuses on its main job of proving whether or not your services are up and running.
2. The non-threaded model has been replaced with a threaded model. I know there are concerns with threading in Python ... but this new model is actually safer in the event that one of your 'check' commands fails to return in a reasonable amount of time. Additionally, our threading model is very simple and under testing has proved to be very reliable.
There are a whole ton of other internal changes... and a few feature enhancements as well. The entire changelog can be found here:
We've been running this release in production for the last 3 weeks without any issues... but as usual, if you find bugs, please let us know!
(ps, nd_service_registry will get its own announcement/documentation email after a few more weeks of tuning/tweaking. its entirely functional right now, but further documentation is necessary before we really ask other people to use it. that being said, it can be found here https://github.com/Nextdoor/ndserviceregistry)