Sobre o projeto

O PgDog é um proxy PostgreSQL de código aberto escrito em Rust, projetado para escalar implantações do PostgreSQL por meio de pool de conexões, balanceamento de carga entre réplicas e shard horizontal de bancos de dados. Opera como um proxy de camada de aplicação (Nível 7 OSI) que compreende o protocolo PostgreSQL, permitindo roteamento inteligente de consultas com base na intenção de leitura/escrita, chaves de shard ou contexto do schema. Principais funcionalidades incluem: - Pool de transações e sessões com mecanismos avançados de recuperação, incluindo rollback automático de transações abandonadas. - Balanceamento de carga entre nós primários e réplicas usando estratégias round-robin, aleatórias ou menos ativas, com verificações de saúde em tempo real e suporte a failover. - Shard via funções de partição (HASH, LIST, RANGE) ou roteamento baseado em schema, suportando consultas cross-shard com montagem de resultados em memória. - Suporte a geração de IDs únicos sem sequências, atualizações de chave de shard, inserts multi-tupla e two-phase commit para escritas cross-shard atômicas. - Capacidades de re-sharding usando replicação lógica, permitindo redistribuição de dados sem downtime. - Flexibilidade de autenticação: baseada em senha, AWS RDS IAM, Azure Workload Identity e HashiCorp Vault (funções dinâmicas/estáticas). - Monitoramento via OpenMetrics, OTEL ou banco de administração estilo PgBouncer. Opções de implantação incluem Docker Compose, Helm charts para Kubernetes (incluindo EKS) e módulos Terraform para AWS ECS. A configuração usa arquivos TOML (`pgdog.toml` para bancos e configurações, `users.toml` para credenciais). A ferramenta é otimizada para desempenho em hardware padrão e inclui ferramentas integradas para sincronização de schema e dados durante o re-sharding. Documentação e suporte da comunidade estão disponíveis através do site oficial e Discord. As funcionalidades da edição enterprise são documentadas separadamente.