Gateway
StableКак Gateway принимает подключения, будит базу, удерживает lease и помогает безопасному freeze/drain cutover автоскейлера.
Обновлено: 21 марта 2026 г.
Gateway — это публичная PostgreSQL‑точка входа SPG99. Именно к нему подключаются приложения, psql, BI‑инструменты и стандартные PostgreSQL‑драйверы.
Для пользователя Gateway — это один стабильный внешний адрес, за которым может стоять уже запущенный writer или база, которую нужно автоматически поднять по первому подключению.
Что делает Gateway
Gateway одновременно выполняет несколько ролей:
- принимает TLS‑подключения по PostgreSQL wire protocol;
- аутентифицирует клиента по tenant credentials;
- получает и продлевает lease на базу;
- будит sleeping‑database;
- маршрутизирует трафик к текущему writer;
- встроенно пуллит backend‑соединения.
Что особенно важно в новой модели
После внедрения writer autoscaler Gateway стал ещё и ключевым участником controlled cutover.
Когда платформа готовит handoff между профилями writer:
- Control Plane поднимает
freeze_new_checkouts; - Gateway перестаёт выдавать новые checkout'ы на старый writer;
- система ждёт drain активной нагрузки;
- только после этого выполняется переключение на новое поколение.
Это очень важная часть надёжности autoscaler: handoff управляется не “вслепую”, а через тот же слой, через который реально идёт клиентский трафик.
Почему это удобно пользователю
- DSN остаётся тем же даже при смене writer.
- Подключение по‑прежнему выглядит как обычный PostgreSQL.
- База может просыпаться автоматически.
- Pooling встроен в сам Gateway.
- Freeze/drain проходит прозрачно для stateless transaction‑нагрузки.
Когда Gateway не сможет сделать бесшовный cutover
Если workload держит session‑зависимые соединения, например:
- temp tables;
LISTEN/UNLISTEN;SETи другой session‑state;- named prepared statements;
- долгие pinned sessions,
то Gateway не должен делать “магический” бесшовный перевод такого трафика. В этом случае handoff откладывается до безопасного окна.
Практические рекомендации
- Используйте стандартный DSN от платформы и не пытайтесь обходить Gateway.
- Старайтесь делать workload как можно более stateless на уровне SQL session.
- Не держите без необходимости много “вечных” idle‑соединений.
- Не пугайтесь
freeze_new_checkouts=trueво время autoscale: это нормальная controlled‑фаза.
Короткий итог
Gateway в SPG99 — это публичный PostgreSQL‑вход, secure router и встроенный pooler в одном сервисе. После внедрения autoscaler он также стал ключевым участником безопасного freeze/drain handoff между поколениями writer.
