An Introduction to Apache Zookeeper, what is it used for ? How does it work and what is it's architecture ?