- Se instala con un solo archivo SQL y funciona (tick) solo con pg_cron
- Cola de mensajes integrada en Postgres que reimplementa la arquitectura PgQ de la era de Skype en PL/pgSQL puro, por lo que puede usarse directamente en Postgres administrado sin extensiones en C ni demonios externos
- Elimina de raíz los problemas crónicos de las colas basadas en SKIP LOCKED, como la acumulación de dead tuples y la carga de VACUUM, mediante lotes basados en snapshots + rotación de tablas con TRUNCATE, sin degradación del rendimiento incluso tras meses de operación
- Soporte nativo de fan-out con una estructura de log de eventos compartido + cursores independientes por consumidor, similar a un tópico de Kafka: múltiples suscriptores reciben todos los eventos de forma independiente sin duplicar datos
- La latencia end-to-end de entrega es de ~1-2 segundos con la configuración predeterminada (intervalo de tick + intervalo de polling), y las llamadas individuales a send/receive/ack están en el orden de microsegundos
- Según benchmarks preliminares, inserción en PL/pgSQL de ~86k ev/s, lectura del consumidor de ~2.4M ev/s, y cero aumento de dead tuples en una prueba continua de 30 minutos
- Al estar basado en una API SQL como
pgque.send(), pgque.receive(), pgque.ack(), funciona en cualquier driver de Postgres sin importar el lenguaje, ya sea Python, Go o TypeScript
- Compatible con los principales proveedores de Postgres administrado como RDS, Aurora, Cloud SQL, AlloyDB, Supabase y Neon, sin necesidad de compilación aparte ni aprobación del proveedor
- Incluye separación de permisos basada en 3 roles (
pgque_reader, pgque_writer, pgque_admin), por lo que el usuario de la aplicación no necesita ser superuser
- Aunque PgQ en sí fue validado en producción durante más de 10 años a escala de cientos de millones de usuarios en Skype, PgQue como producto aún está en una etapa temprana (v0.1)
- Licencia Apache-2.0
1 comentarios
Una base de datos verdaderamente todo en uno