Thinking of PostgreSQL High Availability as Layers
High availability for PostgreSQL is often treated as a single, big, dramatic decision: “Are we doing HA or not?”That framing pushes teams into two extremes:- a “hero architecture” that costs a lot and still feels tense to operate, or
- a minimalistic architecture that everyone hopes will just keep running.A calmer way to design this is to treat HA and DR as layers. You start with a baseline, then add specific capabilities only when your RPO/RTO and budget justify them.Let us walk through the layers from “single primary” to “multi-site DR posture”.Start with outcomesBefore topology, align on three things:1. Failure scope
a. A database host fails
b. A zone or data center goes away
c. A full region outage happens
d. Human error2. RPO (Recovery Point Objective)
a. We can tolerate up to 15 minutes of data loss
b. We want close to zero3. RTO (Recovery Time Objective)
a. We can be back in 30 minutes
b. We want service back in under 2 minutesHere is my stance (and it saves money!): You get strong availability outcomes by layering in the right order.

