By the time we're finished with this chapter, our complete architecture diagram will be far different from what we could achieve before:
We can see that each Patroni only communicates with its own local Postgres instance. It also communicates with etcd and HAProxy to maintain the cluster in a healthy state. Because each of these vertical elements operates independently, we could continue adding Postgres nodes with managing Patroni elements almost indefinitely.
But first, we have to build it.
- The Raft Consensus Algorithm: https://raft.github.io/
- HAProxy: http://www.haproxy.org/
- etcd: https://github.com/coreos/etcd