One potentially problematic aspect of PgBouncer is that each database mapping may only have one endpoint. That is, for each named server we add to its configuration, it can only represent a single PostgreSQL node.
That may seem like a strange concern on our part, but consider circumstances of advanced clusters with multiple Primary nodes. This is a completely valid configuration now that logical replication makes it possible to have two-way replication. Normally, when we reconfigure PgBouncer to send connections to a new database server, this change is absolute.
However, advances in PgBouncer versions after 1.9 make it possible to retain connections to the old PostgreSQL server, yet send new traffic to our new target. This allows for smooth transitions between servers, since transactions are allowed to complete rather than face an interruption...