The concepts of walbouncer
The purpose of the PostgreSQL transaction log is to help a failed database instance recover itself in the event of a crash. It can also be used to replicate an entire database instance, as already discussed in our chapters about synchronous as well as asynchronous replication.
The trouble is that it is necessary to replicate entire database instances. In many real-world scenarios, this can be a problem. Let's assume there is a central server containing information about students studying in many universities. Each university should have a copy of its data. As of PostgreSQL 9.4, this was not possible using a single database instance because streaming replication is only capable of fully replicating an instance. Running many instances is clearly a lot more work and, maybe, not the desired methodology.
The idea behind walbouncer is to connect to the PostgreSQL transaction log and filter it. In this scenario, a slave will receive only a subset of the data, thus...