- Installation mit nur einer SQL-Datei, Betrieb (Tick) allein mit pg_cron
- Eine in Postgres eingebettete Message Queue, die die PgQ-Architektur aus der Skype-Ära in reinem PL/pgSQL nachbildet und sich ohne C-Erweiterung oder externen Daemon direkt auf Managed Postgres nutzen lässt
- Beseitigt das grundlegende Problem klassischer SKIP-LOCKED-Queues – angesammelte Dead Tuples und VACUUM-Last – durch snapshot-basierte Batch-Verarbeitung plus TRUNCATE-Tabellenrotation, sodass auch nach monatelangem Betrieb kein Performance-Abfall entsteht
- Gemeinsames Event-Log mit unabhängigen Cursorn pro Consumer ähnlich einem Kafka-Topic, mit nativem Fan-out-Support — mehrere Subscriber empfangen alle Events unabhängig voneinander, ohne Datenreplikation
- End-to-End-Übertragungslatenz in der Standardkonfiguration ~1–2 Sekunden (Tick-Intervall + Poll-Intervall), einzelne send/receive/ack-Aufrufe im Mikrosekundenbereich
- Vorläufige Benchmarks: PL/pgSQL-Insert ~86k ev/s, Consumer-Lesen ~2,4 Mio. ev/s, bei einem 30-Minuten-Dauertest ohne Zunahme von Dead Tuples
- SQL-API-basiert mit
pgque.send(), pgque.receive(), pgque.ack() usw., daher sprachunabhängig mit jedem Postgres-Treiber für Python, Go, TypeScript usw. nutzbar
- Kompatibel mit allen wichtigen Managed-Postgres-Anbietern wie RDS, Aurora, Cloud SQL, AlloyDB, Supabase und Neon, ohne separaten Build oder Freigabe durch den Provider
- Eingebaute Rechte-Trennung mit drei Rollen (
pgque_reader, pgque_writer, pgque_admin), kein Superuser für Anwendungsnutzer erforderlich
- PgQ selbst ist im Einsatz bei Hunderten Millionen Nutzern aus der Skype-Ära über mehr als 10 Jahre in Produktion bewährt, PgQue als Produkt befindet sich jedoch noch in einer frühen Phase (v0.1)
- Apache-2.0-Lizenz
1 Kommentare
Wirklich eine All-in-One-DB