Zusammenfassung / Kernpunkte
- Eine neue Open-Source-Extension von Microsoft ermöglicht es Ihnen, robuste, fehlertolerante Workflows direkt in Postgres zu erstellen.
- Das bedeutet, Sie können externe Orchestratoren und Cron-Jobs aufgeben und komplexe Pipelines mit nur wenigen Zeilen SQL verwalten.
Der Orchestrator in Ihrer Datenbank
PG Durable ist eine neue, quelloffene Postgres Extension, entwickelt von Microsoft, die es jedem ermöglicht, robuste, absturzsichere Funktionen direkt in Postgres auszuführen. Sie verwandelt Ihre Datenbank in einen Workflow-Orchestrator und eliminiert die Notwendigkeit externer Dienste.
Zu lange bedeutete die Verwaltung komplexer, datenbankzentrierter Workflows, sich mit externen Systemen wie Cron-Jobs, Temporal oder Message Queues herumzuschlagen. PG Durable löst dies, indem es geplante Aufgaben, automatische Wiederholungsversuche und langlaufende Prozesse nativ in Ihre Datenbank bringt und Ihre Architektur erheblich vereinfacht.
Was macht diese Funktionen wirklich „robust“? Im Gegensatz zu einer einfachen `BEGIN...COMMIT`-Transaktion speichert PG Durable den Zustand Ihrer Funktion bei jedem einzelnen Schritt ihrer Ausführung auf der Festplatte. Dies stellt sicher, dass Ihr Prozess, falls Ihre Datenbank mitten im Workflow abstürzt oder neu startet, genau dort fortgesetzt wird, wo er aufgehört hat, ohne Fortschritt zu verlieren.
Diese absturzsichere Garantie ist ein Wendepunkt. Sie bietet robuste Fehlertoleranz für kritische Operationen, von menschlichen Genehmigungen bis hin zu mehrstufigen Datentransformationen, die zuvor eine aufwendige externe Orchestrierung erforderten. Stellen Sie es sich als eine widerstandsfähige Workflow-Engine vor, die direkt in das Herz Ihrer Daten integriert ist.
Ihre neuen SQL-Superkräfte
Stellen Sie sich vor, Sie erstellen komplexe Workflows direkt in Ihrer Datenbank, anstatt sie nur abzufragen. PG Durable verleiht Ihnen neue SQL-Superkräfte und verwandelt Ihre Datenbank in einen vollwertigen Orchestrator. Es führt eine SQL-native DSL mit leistungsstarken Operatoren ein, um den Ausführungsfluss zu definieren.
Sie können Operationen mit `~>` sequenzieren, sie parallel mit `&` ausführen oder endlose Schleifen mit `@>` erstellen. Dies ermöglicht es Ihnen, komplexe Schrittgraphen direkt in Ihren SQL-Anweisungen zu konstruieren, wodurch komplexe Logik überraschend prägnant wird.
PG Durable bietet auch wesentliche integrierte Funktionen. Verwenden Sie `df.start()`, um einen Workflow asynchron zu starten und sofort eine ID zur Nachverfolgung zu erhalten. Benötigen Sie eine Cron-ähnliche Zeitplanung? `df.wait_for_schedule` lässt Sie pausieren, bis eine bestimmte Zeit erreicht ist. Für menschliche Genehmigungen oder externe Ereignisse parkt `df.wait_for_signal` Ihren Workflow, bis er einen Weckruf erhält.
Entscheidend ist, dass, wenn Sie einen Prozess mit `df.start()` starten, dieser in einem Postgres Background Worker ausgeführt wird. Das bedeutet, Ihre Client-Verbindung gibt sofort eine ID zurück und blockiert nicht, selbst bei langlaufenden oder endlos schleifenden Workflows. Ihre Datenbank übernimmt die Schwerstarbeit und entlastet Ihre Anwendung.
Von 300 Zeilen Code zu 7
Wenn wir von „90 % weniger Code“ sprechen, ist das nicht nur Marketing-Blabla. Betrachten Sie das Beispiel des Videos: Über 300 Zeilen Boilerplate-Code – für Queue-Setup, Fehlerbehandlung, Worker-Management und State-Tracking – können durch lediglich sieben Zeilen PG Durable SQL ersetzt werden. Diese drastische Reduzierung ergibt sich aus der Verlagerung komplexer Orchestrierungslogik in die Datenbank selbst.
Stellen Sie sich vor, Sie bauen ein robustes System, das Message Queues verwaltet, nach neuen Aufgaben abfragt, die Nachrichtenverarbeitung übernimmt, den Zustand über mehrere Schritte hinweg verfolgt und Fehlerbehandlung mit automatischen Wiederholungsversuchen implementiert. Typischerweise erfordert dies erheblichen benutzerdefinierten Code oder externe Dienste. PG Durable abstrahiert all das, sodass Sie sich auf die Geschäftslogik konzentrieren können.
Diese Prägnanz lässt PG Durable für spezifische Workflows glänzen. Es ist ideal für: - ETL pipelines, die zuverlässige, mehrstufige Datenumwandlungen benötigen. - Geplante Wartung, wie das Aktualisieren von materialized views oder das Ausführen täglicher Bereinigungsaufgaben. - Mehrstufige Geschäftslogik, wie Auftragsabwicklung oder Rechnungsverarbeitung. - API integration workflows, die externe Aufrufe und deren Antworten dauerhaft verwalten müssen.
Die Stärke liegt in der Erweiterung, die die schwierigen Teile übernimmt. Entwickler müssen keine benutzerdefinierten Lösungen mehr für Durabilität, automatische Wiederholungsversuche oder komplexes Zustandsmanagement entwickeln. PG Durable bietet diese grundlegenden Funktionen sofort einsatzbereit und stellt sicher, dass Ihre Workflows absturzsicher und selbstheilend sind, mit minimalem Code.
Die Kompromisse: Wann Sie Ihren Orchestrator behalten sollten
Die wahre Stärke von PG Durable zeigt sich, wenn die Logik und der Zustand Ihres Workflows eng mit Daten verknüpft sind, die sich bereits in Postgres befinden. Es bewältigt perfekt Anwendungsfälle wie die Automatisierung von materialized view Aktualisierungen, die Orchestrierung mehrstufiger Datentransformationen oder die Verwaltung von Human-in-the-Loop-Genehmigungsprozessen direkt dort, wo Ihre Kerndaten leben. Diese enge In-Database-Integration vereinfacht die Entwicklung drastisch, eliminiert externe Dienstabhängigkeiten und reduziert oft den Betriebsaufwand für datenzentrierte Aufgaben.
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
Externe Orchestratoren behaupten sich jedoch weiterhin für breitere, komplexere Szenarien. Betrachten Sie Workflows, die viele heterogene Systeme umfassen – die Koordination von microservices, externen APIs und cloud functions über verschiedene Plattformen hinweg. Hierfür bietet ein dedizierter Orchestrator die Flexibilität und robusten Integrationsfähigkeiten, die weit über eine einzelne Datenbank hinausgehen, insbesondere wenn es um komplizierte Anwendungslogik geht, die für SQL ungeeignet ist. Diese externen Tools bieten eine spezialisierte Schicht für die Verwaltung verteilter Systeme.
Installationsberechtigungen sind eine entscheidende Überlegung für PG Durable. Als eine Postgres extension erfordert es spezifische Privilegien, um in Ihrer Datenbankinstanz installiert und konfiguriert zu werden. Es nutzt auch einen dedizierten background worker, um durable functions auszuführen, was es zu einem integralen Bestandteil Ihres Datenbankservers macht. Während diese Architektur absturzsichere Zuverlässigkeit bietet, bedeutet dies auch, dass PG Durable ein leistungsstarkes, spezialisiertes Tool für die In-Database-Orchestrierung ist und kein universeller Ersatz für jede Orchestrierungsherausforderung in Ihrer gesamten Infrastruktur.
Häufig gestellte Fragen
Was ist PG Durable?
PG Durable ist eine Open-Source-PostgreSQL-Erweiterung von Microsoft, die es Entwicklern ermöglicht, dauerhafte, fehlertolerante Workflows und geplante Aufgaben direkt in der Datenbank mithilfe einer SQL-nativen DSL zu erstellen und zu verwalten.
Wie unterscheidet sich PG Durable von einem traditionellen cron job?
Im Gegensatz zu einem cron job, der ein einfacher Scheduler ist, bietet PG Durable eine zustandsbehaftete, dauerhafte Ausführung. Seine Workflows werden bei jedem Schritt auf der Festplatte gespeichert, was bedeutet, dass sie Datenbankabstürze und Neustarts überstehen können, indem sie automatisch wiederholen und dort fortfahren, wo sie aufgehört haben.
Ist PG Durable ein Ersatz für Tools wie Temporal oder Airflow?
PG Durable ist ein hervorragender Ersatz für datenbankzentrierte Workflows, der die Notwendigkeit externer Dienste eliminiert. Tools wie Temporal oder Airflow eignen sich jedoch besser für komplexe Orchestrierung über viele heterogene Systeme hinweg oder wenn die primäre Logik außerhalb der Datenbank liegt.
Welche Version von PostgreSQL wird für PG Durable benötigt?
PG Durable ist für moderne PostgreSQL-Versionen konzipiert. Das offizielle Docker image von Microsoft läuft auf Postgres 17, und es ist am besten, die offizielle Dokumentation für die neuesten Kompatibilitätsinformationen zu konsultieren.
Können PG Durable Workflows externe HTTP-Aufrufe tätigen?
Ja, PG Durable enthält Funktionalität, um HTTP-Anfragen direkt aus einem SQL workflow zu stellen, wodurch Sie externe APIs als Teil Ihrer durable function integrieren können.
