I've been reading ES's code and was wondering about an architectural decision. If I understand correctly, an ES cluster first elects a leader which is then in charge of managing the cluster state. I am guessing new nodes notify the master when they join the cluster and the master checks on their health/state periodically. Nodes probably update their own internal cluster state by querying the master.
Anyways, my main questions is: why elect a leader at all? Why not go with a symmetric design where each node is responsible for keeping track of the cluster state?