Re: Request for Feedback on PostgreSQL HA + Load Balancing Architecture
Achilleas Mantzios <a.mantzios@cloud.gatewaynet.com>
From: Achilleas Mantzios <a.mantzios@cloud.gatewaynet.com>
To: vijay patil <vijay.postgres@gmail.com>, pgsql-general@lists.postgresql.org
Date: 2025-07-23T11:13:26Z
Lists: pgsql-general
On 6/18/25 18:12, vijay patil wrote: > Hi Team, > > I am planning to implement a PostgreSQL High Availability (HA) and > Load Balancing setup and would greatly appreciate your feedback on the > architecture we've designed (see attached diagram). > > image.png > > *Overview of the Setup:* > > * > > Two PostgreSQL nodes (VM1 and VM2) configured with: > > o > > Asynchronous replication from the Primary DB (on VM1) to the > Standby DB (on VM2) using |repmgr| > > o > > HAProxy for failover management: > > + > > HAProxy 1 (active) on VM1 > > + > > HAProxy 2 (passive) on VM2 with Keepalive for heartbeat > and failover detection > > o > > PgBouncer on both nodes for connection pooling > > * > > A Virtual IP (VIP) managed by HAProxy for routing traffic from the > application > > * > > Read/Write operations go to the Primary DB, and Read-Only queries > can be served from either node > > *Objectives:* > > * > > Ensure high availability with automatic failover > > * > > Enable basic load balancing for read-only queries > > * > > Maintain connection pooling and routing efficiency > > *Request for Feedback:* > > * > > Is this architecture considered a best practice within the > PostgreSQL community? > > * > > Are there any potential bottlenecks or failure points I should be > aware of? > > * > > Would you recommend any improvements or alternative tools for > achieving better reliability and performance? > Personally I will test long run via app -> pgbouncer -> pgpool-ii in order to combine : * Query Routing (read/write automatic split) * Load Balancing * High Availability * Query caching Have you consider pgpool-ii ? I know most support / service companies push for patroni, and manually separating read / write traffic from within the app, but I still find pgpool's query routing very nice. > * > > > Thanks > > Vijay >