Об этом проекте

PgDog — это прокси-сервер PostgreSQL с открытым исходным кодом, написанный на Rust, предназначенный для масштабирования PostgreSQL-инфраструктуры за счёт пулинга соединений, балансировки нагрузки между репликами и горизонтального шардирования баз данных. Он работает как приложения-прокси (уровень 7 модели OSI), понимающий протокол PostgreSQL, что позволяет интеллектуально маршрутизировать запросы на основе намерений read/write, ключей шардирования или контекста схемы. Ключевые возможности: - Пуллинг транзакций и сессий с расширенными механизмами восстановления, включая автоматический откат брошенных транзакций. - Балансировка нагрузки между мастером и репликами с использованием стратегий round-robin, случайного выбора или наименьшей активности, с проверкой состояния в реальном времени и поддержкой failover. - Шардирование через партицирующие функции (HASH, LIST, RANGE) или маршрутизацию на уровне схем, поддержка кросс-шардовых запросов с сбором результатов в памяти. - Генерация уникальных ID без последовательностей, обновление ключей шардирования, многострочные вставки и двухфазная фиксация для атомарных кросс-шардовых записей. - Возможность перешардирования с использованием логической репликации, обеспечивающая перераспределение данных без простоя. - Гибкая аутентификация: по паролю, через AWS RDS IAM, Azure Workload Identity и HashiCorp Vault (динамические/статические роли). - Мониторинг через OpenMetrics, OTEL или административную базу данных в стиле PgBouncer. Варианты развертывания включают Docker Compose, Helm-чарты для Kubernetes (включая EKS) и Terraform-модули для AWS ECS. Конфигурация выполняется через TOML-файлы (pgdog.toml для баз данных и настроек, users.toml для учётных данных). Инструмент оптимизирован для работы на стандартном оборудовании и включает встроенные средства синхронизации схем и данных при перешардировании. Документация и поддержка сообщества доступны на официальном сайте и в Discord. Возможности enterprise-версии описаны отдельно.