Postgresql: Max Connections per server / database
max_connections from postgresql.conf is for the entire server, but CONNECTION LIMIT from CREATE|ALTER DATABASE command is for that specific database, so you have your choice.

You might barely get away with 4500 connections, but only if the vast majority of them don't do anything the vast majority of the time.  In which, case, why have them?  Why does each microservice need a connection pool of 5?


  I've read through numerous articles with performance issues with one database and a schema per tenant so I think that option is ruled out.


There are lots of bad articles out there, or ones based on 15 year old experiences.  A lot has changed in 15 years.  Which articles are they? And did they actually say that a database per tenant was better than a schema per tenant, or just that a schema per tenant was bad with no comparison to the alternative?