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.