Using replication to scale PostgreSQL
Replication can be used in many scaling scenarios. Its primary purpose of course is to create and maintain a backup database for the case of system failure. This is especially true for physical replication. However, replication can also be used to improve the performance of a solution based on PostgreSQL. Sometimes third-party tools can be used to implement complex scaling scenarios.
Scaling for heavy querying
Suppose there is a system that is supposed to handle a lot of read requests. For example, that could be an application that implements HTTP API endpoint supporting the auto-completion functionality on a web site. Each time a user enters a character in a web form, the system searches in the database for objects whose name starts with the string the user has entered. The number of queries can be very big because of the large number of the users and also because several requests are processed for every user session. To handle big numbers of requests...