En bref / Points clés
- Une nouvelle extension open source de Microsoft vous permet de créer des workflows durables et tolérants aux pannes directement dans Postgres.
- Cela signifie que vous pouvez abandonner les orchestrateurs externes et les tâches cron, gérant des pipelines complexes avec seulement quelques lignes de SQL.
L'orchestrateur au cœur de votre base de données
PG Durable est une nouvelle extension Postgres open source développée par Microsoft qui permet à chacun d'exécuter des fonctions durables et résistantes aux pannes directement dans Postgres. Elle transforme votre base de données en un orchestrateur de workflows, éliminant le besoin de services externes.
Pendant trop longtemps, la gestion de workflows complexes centrés sur la base de données impliquait de se débattre avec des systèmes externes comme les tâches cron, Temporal ou les files d'attente de messages. PG Durable résout ce problème en intégrant nativement les tâches planifiées, les tentatives automatiques et les processus de longue durée dans votre base de données, simplifiant considérablement votre architecture.
Qu'est-ce qui rend ces fonctions vraiment « durables » ? Contrairement à une simple transaction `BEGIN...COMMIT`, PG Durable persiste l'état de votre fonction sur le disque à chaque étape de son exécution. Cela garantit que si votre base de données plante ou redémarre en plein milieu d'un workflow, votre processus reprend exactement là où il s'était arrêté, sans perdre de progression.
Cette garantie de résistance aux pannes change la donne. Elle offre une tolérance aux pannes robuste pour les opérations critiques, des approbations avec intervention humaine aux transformations de données en plusieurs étapes qui nécessitaient auparavant une orchestration externe élaborée. Considérez-le comme un moteur de workflow résilient, intégré au cœur de vos données.
Vos nouveaux super-pouvoirs SQL
Imaginez construire des workflows complexes directement dans votre base de données, et pas seulement la requêter. PG Durable vous confère de nouveaux super-pouvoirs SQL, transformant votre base de données en un orchestrateur à part entière. Il introduit un DSL natif SQL avec des opérateurs puissants pour définir le flux d'exécution.
Vous pouvez séquencer les opérations avec `~>`, les exécuter en parallèle en utilisant `&`, ou créer des boucles éternelles avec `@>`. Cela vous permet de construire des graphes d'étapes sophistiqués directement dans vos instructions SQL, rendant la logique complexe étonnamment concise.
PG Durable apporte également des fonctions intégrées essentielles. Utilisez `df.start()` pour lancer un workflow de manière asynchrone, en recevant immédiatement un ID pour le suivi. Besoin d'une planification de type cron ? `df.wait_for_schedule` vous permet de faire une pause jusqu'à une heure spécifiée. Pour les approbations humaines ou les événements externes, `df.wait_for_signal` met votre workflow en attente jusqu'à ce qu'il reçoive un signal de réveil.
De manière cruciale, lorsque vous démarrez un processus avec `df.start()`, il s'exécute dans un worker d'arrière-plan Postgres. Cela signifie que votre connexion client renvoie immédiatement un ID et ne bloque pas, même pour les workflows de longue durée ou en boucle perpétuelle. Votre base de données gère le gros du travail, libérant votre application.
De 300 lignes de code à 7
Quand nous parlons de « 90 % de code en moins », ce n'est pas seulement du baratin marketing. Considérez l'exemple de la vidéo : plus de 300 lignes de code passe-partout – pour la configuration de la file d'attente, la gestion des erreurs, la gestion des workers et le suivi de l'état – peuvent être remplacées par seulement sept lignes de PG Durable SQL. Cette réduction spectaculaire provient du déplacement de la logique d'orchestration complexe dans la base de données elle-même.
Imaginez construire un système robuste qui gère les files d'attente de messages, interroge les nouvelles tâches, traite les messages, suit l'état à travers plusieurs étapes et implémente la gestion des erreurs avec des tentatives automatiques. Généralement, cela nécessite un code personnalisé important ou des services externes. PG Durable abstrait tout cela, vous permettant de vous concentrer sur la logique métier.
Cette concision fait briller PG Durable pour des workflows spécifiques. Il est idéal pour : - Les pipelines ETL qui nécessitent des transformations de données fiables et en plusieurs étapes. - La maintenance planifiée, comme l'actualisation des vues matérialisées ou l'exécution de tâches de nettoyage quotidiennes. - La logique métier en plusieurs étapes, telle que l'exécution des commandes ou le traitement des factures. - Les workflows d'intégration d'API qui doivent gérer durablement les appels externes et leurs réponses.
La puissance réside dans l'extension qui gère les parties difficiles. Les développeurs n'ont plus besoin de créer des solutions personnalisées pour la durabilité, les tentatives automatiques ou la gestion complexe de l'état. PG Durable offre ces capacités fondamentales prêtes à l'emploi, garantissant que vos workflows sont résistants aux pannes et auto-réparateurs avec un minimum de code.
Les compromis : Quand conserver votre orchestrateur
La véritable puissance de PG Durable émerge lorsque la logique et l'état de votre workflow sont profondément liés aux données résidant déjà dans Postgres. Il gère parfaitement des cas d'utilisation tels que l'automatisation de l'actualisation des vues matérialisées, l'orchestration de transformations de données en plusieurs étapes, ou la gestion des processus d'approbation avec intervention humaine directement là où résident vos données principales. Cette intégration étroite et intra-base de données simplifie considérablement le développement, élimine les dépendances aux services externes et réduit souvent les frais généraux opérationnels pour les tâches centrées sur les données.
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
Cependant, les orchestrateurs externes conservent leur pertinence pour des scénarios plus larges et plus complexes. Considérez les workflows couvrant de nombreux systèmes hétérogènes — coordonnant des microservices, des API externes et des fonctions cloud sur différentes plateformes. Pour ceux-ci, un orchestrateur dédié offre la flexibilité et les capacités d'intégration robustes qui s'étendent bien au-delà d'une seule base de données, en particulier lorsqu'il s'agit d'une logique d'application complexe mal adaptée au SQL. Ces outils externes fournissent une couche spécialisée pour la gestion des systèmes distribués.
Les permissions d'installation sont une considération cruciale pour PG Durable. En tant qu'extension Postgres, il nécessite des privilèges spécifiques pour être installé et configuré au sein de votre instance de base de données. Il utilise également un background worker dédié pour exécuter des fonctions durables, ce qui en fait une partie intégrante de votre serveur de base de données. Bien que cette architecture offre une fiabilité à l'épreuve des pannes, cela signifie également que PG Durable est un outil puissant et spécialisé pour l'orchestration intra-base de données, et non un substitut universel pour chaque défi d'orchestration à travers toute votre infrastructure.
Foire aux questions
Qu'est-ce que PG Durable ?
PG Durable est une extension open-source PostgreSQL de Microsoft qui permet aux développeurs de créer et de gérer des workflows durables et tolérants aux pannes, ainsi que des tâches planifiées, directement au sein de la base de données à l'aide d'un DSL SQL-natif.
En quoi PG Durable diffère-t-il d'un cron job traditionnel ?
Contrairement à un cron job, qui est un simple planificateur, PG Durable offre une exécution durable et avec état. Ses workflows sont persistés sur disque à chaque étape, ce qui signifie qu'ils peuvent survivre aux pannes et aux redémarrages de la base de données, se relançant et reprenant automatiquement là où ils s'étaient arrêtés.
PG Durable est-il un remplacement pour des outils comme Temporal ou Airflow ?
PG Durable est un excellent remplacement pour les workflows centrés sur la base de données, éliminant le besoin de services externes. Cependant, des outils comme Temporal ou Airflow sont mieux adaptés à l'orchestration complexe à travers de nombreux systèmes hétérogènes ou lorsque la logique principale réside en dehors de la base de données.
Quelle version de PostgreSQL est requise pour PG Durable ?
PG Durable est conçu pour les versions modernes de PostgreSQL. L'image Docker officielle de Microsoft fonctionne sur Postgres 17, et il est préférable de consulter la documentation officielle pour les dernières informations de compatibilité.
Les workflows PG Durable peuvent-ils effectuer des appels HTTP externes ?
Oui, PG Durable inclut des fonctionnalités pour effectuer des requêtes HTTP directement depuis un workflow SQL, vous permettant d'intégrer des API externes dans le cadre de votre fonction durable.
