Sobre o projeto

O PeerDB é uma ferramenta de ETL/ELT focada em mover dados de e para o PostgreSQL. Ele suporta vários modos de streaming: CDC baseado em log (recomendado e mantido ativamente), replicação baseada em cursor usando timestamps ou inteiros, e replicação baseada em XMIN. Os tipos Query Replication (QRep) e espelhamento XMIN estão marcados como obsoletos, mas permanecem funcionais. As fontes listadas como mantidas ativamente incluem Postgres, MySQL, MongoDB, CockroachDB e BigQuery. Os destinos mantidos ativamente são ClickHouse, ClickHouse Cloud e Postgres. Vários conectores de destino (S3, Snowflake, BigQuery, ElasticSearch, Kafka, Redpanda, Confluent, Azure Event Hubs, Google Pub/Sub) estão obsoletos, mas ainda funcionais; o BigQuery continua suportado como fonte. Uma característica distintiva é uma interface SQL compatível com Postgres para ETL, para que os usuários possam gerenciar a replicação com ferramentas de cliente familiares (psql, pgAdmin), ferramentas de BI, ferramentas de migração/versionamento e agendadores existentes, como o Airflow. O projeto enfatiza otimizações nativas do Postgres: cargas iniciais paralelas, tratamento de colunas TOAST, mapeamento avançado de tipos de dados, incluindo jsonb, arrays e tipos geoespaciais, e suporte a alterações de esquema. Ele também descreve mecanismos de tolerância a falhas, como gerenciamento de estado, novas tentativas automáticas e tratamento de idempotência, além de batching e paralelismo configuráveis para evitar falhas por falta de memória. A introdução é feita por meio de um script de shell que inicializa contêineres Docker para Postgres como catálogo, Temporal, o servidor PeerDB, a API de fluxo e os workers, e a interface do PeerDB. Um caminho de desenvolvimento local compila imagens localmente e requer o compilador buf para geração de protobuf. O README observa que, quando o ClickHouse é executado fora do Docker, o acesso de staging do MinIO deve ser configurado via AWS_ENDPOINT_URL_S3 e regras de rede/grupos de segurança. Os testes de ponta a ponta são suportados localmente por meio do Docker Compose orquestrado pelo Tilt, com inicializadores de teste para Postgres, MySQL (variantes GTID e file-position), MariaDB e MongoDB para ClickHouse. Os armazenamentos de dados usam inicialização manual para conservar recursos, e volumes nomeados fornecem persistência com uma opção de limpeza na interface do Tilt. O PeerDB também é oferecido nativamente no ClickHouse Cloud. O projeto é licenciado sob AGPLv3 (o selo do README faz referência ao Elv2, enquanto a seção de licença declara AGPLv3).