ZooKeeper: "Building distributed systems is a zoo...
ZooKeeper is a service for coordinating processes of distributed applications. Historically distributed processes are coordinated using group messaging, shared registers, or distributed lock services. ZooKeeper incorporates elements from all these servers, but incorporates them into a replicated centralized service. The interface exposed by ZooKeeper incorporates the wait-free aspects of group messaging and shared registers with an eventing mechanism similar to those of locking services to provide a simple, yet powerful coordination service."