Как сделать чтобы большая БД держала нагрузку?
Ооо.... Вы это сейчас вообще серьёзно?

Если вы запускаете DBaaS платформу и не знаете что делать собственно с базами - то у вас не
Запускаю свою облачную платформу, код и архитектура создана с нуля.
У вас нет вообще абсолютно ещё ничего и уж архитектуры - в особенности. Кроме "идеи", над которой бьётся давно и много кто, при том имея ресурсы на собственные команды DBA.

Например: юзер пишет какой-то запрос и ему не нужно указывать на какой сервер что отправлять или откуда читать, для него это один сервер.
Значит этому юзеру достаточно ходить только на мастер.
Для сферического в вакууме приложения нет средств автоматически распределять запросы по репликам. И такое сделать вовсе невозможно без накладывания ограничений на использование. Например,
select somefunc();
Что делает эта функция? Она только читает данные и потому можно отправить на реплику или она пишет и потому должна быть на мастере? Хотите правильный ответ от контрибьютора postgresql? Это достоверно не знает даже сама база до тех пор пока не выполнит функцию.

Другой пример:
begin isolation level repeatable read;
select ...
update ...
commit;
Как максимум на запросе select вы должны уже знать можете ли вы эту транзакцию отправить на читающую реплику. Откуда бы вам это узнать заранее?
И прочие принципиально-нерешаемые вопросы.

DBaaS это не про большие базы. Как бы не хотелось маркетингу убедить в обратном. Это про небольшие или стартующие проекты, где проще переплатить сервису за относительно вменяемую настройку и сопровождение типовой конфигурации.
Используйте пуллеры соединений и балансировщики. Например, haproxy и pgbouncer для pgsql.
Изучите материалы, статьи, проведите исследование подходящих вариантов.
Вот статья с разбором примера от percona, может быть неплохой отправной точкой https://www.percona.com/blog/2018/10/02/scaling-po...