very fast: subscribing to changes to a Zk directory gives you a Pubsub notification on the client on change, and then you wait a small random interval and slurp the entire endpoint list and materialize them in your local cache as a file.
This also turned out to be very robust, if you know a thing about Unix and code it right.