So I've been doing a stack of reading. I'm still not 100% clear of the best way to go about it.
Let's take a simple setup. 3 nodes to server UWSGI apps (in random), 3 nodes for PGSQL, 1 nominal master and 2 read only slaves - it's not setup yet but that's the goal. 80% of the requests are read only anyway for most apps.
Now what really bugs me is that PGPool is usually illustrated as a single machine. If we are going for high availability as the primary goal with load balancing as a highly desirable side effect, introducing the need for a PGPool in the middle is introducing a singular point of failure as well as perhaps an otherwise unecesaey node.
Trying to ascertain what to do I imagine that really the app servers could be PGpools as they're the first one to notice if a DB goes down, but I've heard multiple PGPools are Complicated.
I mean what I really want is the built in replication ability with the ability to execute a failover and mark the new master etc, I know PGPool does it. I'd like it to be decentralised if possible - can people please point me in the right direction.?