The discovery mechanism looks clumsy to me. There's no way we'd rely on a public discovery service, for example. If we're going to hardcode configuration information - such as the URL of a discovery service that may or may not be up or reachable, we might as well hardcode the addresses of a few peers. And running a second etcd cluster to bring up the main one seems pointless. Either it's turtles all the way down, or…
This is why top-down, single-source of truth is mostly the best way for core infrastructure. No pun intended. It's important for some parts to not be infinitely reconfigurable or dynamic because it would create chaos and service dependency deadlock/DoS. Most people not running bare metal don't know the lessons of how and why things underneath are they way they are and the sensible limits what's possible. It's also mo…
What happens when your single source of truth goes down?
etcd attempts to provide a source of truth by using the Raft[1] consensus algorithm to determine that "truth" in an environment when relying on merely one place is too risky.
Th Raft and Paxos[2] (as used in Zookeeper & Google Chubby) algorithms give guarantees for consensus in an environment with unreliable hardware. That is better than a single source of truth where you get nothing when that source disappears.