In this article we are going to see how database servers work together to allow a second server to take over quickly if the primary server fails (high availability) and to allow multiple servers to serve the same data for SELECTs (horizontal read scalability).
Since both functionalities are not available in one product, we need to rely on external tools to provide this functionality and integrate them. EDB Postgres Failover Manager (EFM) is high-availability tool to monitor the health of Postgres Streaming Replication clusters to verify database failures quickly and automatically promote a standby node as primary without any data loss and with minimal service interruption(connection rollback). PgPool-II (pgpool) provides connection pooling and load balancing for horizontal scalability of SELECT queries on multiple standbys.
Read more on Postgres Rocks to see how EDB Failover Manager (EFM) and PgPool-II functionalities work together to achieve high-availability and horizontal read scalability.