docs/design/zookeeper.md
Apache Druid uses Apache ZooKeeper (ZK) for management of current cluster state.
Apache Druid supports all stable versions of ZooKeeper. For information about ZooKeeper's stable version, see ZooKeeper releases.
The operations that happen over ZK are
We use the Curator LeaderLatch recipe to perform leader election at path
${druid.zk.paths.coordinatorPath}/_COORDINATOR
The announcementsPath and liveSegmentsPath are used for this.
All Historical processes publish themselves on the announcementsPath, specifically, they will create an ephemeral znode at
${druid.zk.paths.announcementsPath}/${druid.host}
Which signifies that they exist. They will also subsequently create a permanent znode at
${druid.zk.paths.liveSegmentsPath}/${druid.host}
And as they load up segments, they will attach ephemeral znodes that look like
${druid.zk.paths.liveSegmentsPath}/${druid.host}/_segment_identifier_
Processes like the Coordinator and Broker can then watch these paths to see which processes are currently serving which segments.