- Instala com um único arquivo SQL e roda (tick) apenas com
pg_cron
- Fila de mensagens embutida no Postgres que reimplementa a arquitetura PgQ da era do Skype em PL/pgSQL puro, podendo ser usada diretamente em Postgres gerenciado sem extensão em C nem daemon externo
- Elimina pela raiz os problemas crônicos das filas com SKIP LOCKED — acúmulo de dead tuples e carga de VACUUM — com loteamento baseado em snapshot + rotação de tabelas com TRUNCATE, sem perda de desempenho mesmo após meses de operação
- Estrutura de log de eventos compartilhado + cursor independente por consumidor, semelhante a um tópico do Kafka, com suporte nativo a fan-out — vários assinantes recebem todos os eventos de forma independente sem duplicação de dados
- A latência de entrega de ponta a ponta fica em torno de ~1-2 segundos na configuração padrão (intervalo do tick + intervalo de polling), enquanto chamadas individuais de send/receive/ack ficam em nível de microssegundos
- Em benchmark preliminar, insert em PL/pgSQL de ~86k ev/s, leitura pelo consumidor de ~2.4M ev/s e zero aumento de dead tuples em teste contínuo de 30 minutos
- Como é baseado em API SQL com
pgque.send(), pgque.receive(), pgque.ack() etc., funciona em qualquer driver de Postgres, independentemente da linguagem, como Python, Go e TypeScript
- Compatível com os principais provedores de Postgres gerenciado, como RDS, Aurora, Cloud SQL, AlloyDB, Supabase e Neon, sem necessidade de build separado ou aprovação do provedor
- Separação de permissões embutida com 3 papéis (
pgque_reader, pgque_writer, pgque_admin), sem exigir superuser para o usuário da aplicação
- O próprio PgQ já foi validado em produção por mais de 10 anos na escala de centenas de milhões de usuários do Skype, mas o PgQue ainda está em estágio inicial como produto (v0.1)
- Licença Apache-2.0
1 comentários
Um banco de dados realmente tudo em um