pg_durable : Microsoft open source l'exécution durable en base de données
Retour au blog
Tech & Innovation 9 min 6 juin 2026

pg_durable : Microsoft open source l'exécution durable en base de données

Microsoft a récemment open sourcé pg_durable, une extension PostgreSQL pour l'exécution durable des transactions. Découvrez comment cet outil peut optimiser vos bases de données et son fonctionnement détaillé.

Qu'est-ce que pg_durable ?

Microsoft a récemment annoncé l'open source de pg_durable, une extension pour PostgreSQL conçue pour faciliter l'exécution durable des transactions au sein des bases de données. Contrairement aux solutions classiques qui reposent sur des mécanismes externes comme les files de messages ou les systèmes de gestion de workflows, pg_durable intègre directement cette logique dans le moteur de la base de données.

Cette approche permet de garantir que les transactions complexes, impliquant plusieurs étapes ou services, s'exécutent de manière fiable et cohérente, même en cas de panne ou de redémarrage du système. En résumé, pg_durable simplifie la gestion des workflows transactionnels tout en améliorant la résilience des applications.

PostgreSQL et code de programmation illustrant l'open source

Pourquoi pg_durable est-il révolutionnaire ?

Traditionnellement, les développeurs doivent gérer manuellement la durabilité des transactions en utilisant des patterns comme les sagas ou des systèmes de compensation. Ces méthodes, bien que fonctionnelles, ajoutent une complexité importante au code et peuvent introduire des erreurs difficiles à déboguer.

Avec pg_durable, Microsoft propose une solution intégrée qui permet de :

  • Définir des workflows transactionnels directement dans la base de données, sans dépendre d'un service externe.
  • Garantir l'atomicité et la cohérence des transactions, même en cas de défaillance du système.
  • Simplifier le développement en réduisant la quantité de code nécessaire pour gérer les workflows complexes.
  • Améliorer les performances en évitant les allers-retours entre la base de données et des services externes.

Cette innovation s'inscrit dans la tendance croissante des bases de données actives, capables non seulement de stocker des données, mais aussi d'exécuter des logiques métier directement dans le moteur.

Comment fonctionne pg_durable ?

pg_durable s'appuie sur plusieurs concepts clés pour offrir une exécution durable des transactions :

1. Transactions imbriquées

L'extension permet de créer des transactions imbriquées, où chaque étape d'un workflow est une transaction autonome. Si une étape échoue, les autres peuvent être annulées ou compensées automatiquement, sans impacter la cohérence globale.

2. Journalisation durable

pg_durable utilise un journal durable pour enregistrer chaque étape du workflow. Ce journal permet de reprendre l'exécution là où elle s'est arrêtée en cas de panne, garantissant ainsi que toutes les transactions sont traitées correctement.

3. Gestion des erreurs et compensation

L'outil intègre un mécanisme de compensation pour annuler les effets des transactions qui ont échoué. Par exemple, si une réservation d'hôtel est annulée après un paiement, pg_durable peut automatiquement rembourser le client sans intervention manuelle.

4. Intégration avec PostgreSQL

pg_durable est conçu pour s'intégrer parfaitement avec PostgreSQL. Il utilise les fonctionnalités natives du moteur, comme les triggers et les procédures stockées, pour offrir une expérience fluide aux développeurs.

Cas d'usage concrets de pg_durable

Les applications de pg_durable sont multiples et s'adressent à divers secteurs. Voici quelques exemples concrets :

1. E-commerce : Gestion des commandes complexes

Dans un système de e-commerce, une commande peut impliquer plusieurs étapes : vérification du stock, réservation des articles, traitement du paiement, et mise à jour de l'inventaire. Avec pg_durable, toutes ces étapes peuvent être regroupées dans une seule transaction durable, garantissant que la commande est traitée correctement, même en cas de panne pendant le processus.

2. Finance : Transactions bancaires sécurisées

Les banques et institutions financières peuvent utiliser pg_durable pour gérer des transactions complexes, comme les virements internationaux ou les prêts. L'extension permet de garantir que les fonds sont débités et crédités correctement, même si une étape du processus échoue.

3. Logistique : Suivi des livraisons

Dans le domaine de la logistique, pg_durable peut être utilisé pour suivre les livraisons de colis. Chaque étape du processus (ramassage, transport, livraison) peut être enregistrée dans une transaction durable, permettant de reprendre le processus en cas d'interruption.

4. Santé : Gestion des dossiers patients

Les hôpitaux et cliniques peuvent utiliser pg_durable pour gérer les dossiers patients de manière sécurisée. Par exemple, une transaction durable peut inclure la mise à jour du dossier médical, la prescription d'un traitement, et la planification d'un rendez-vous, le tout de manière cohérente et résiliente.

Comment installer et utiliser pg_durable ?

L'installation de pg_durable est relativement simple, surtout si vous êtes déjà familier avec PostgreSQL. Voici les étapes à suivre :

1. Prérequis

Pour utiliser pg_durable, vous aurez besoin de :

  • Une installation de PostgreSQL 15 ou supérieur.
  • Un système d'exploitation compatible (Linux, Windows ou macOS).
  • Les droits d'administration pour installer des extensions dans PostgreSQL.

2. Installation de l'extension

Vous pouvez installer pg_durable en suivant ces étapes :

  1. Téléchargez le code source depuis le dépôt GitHub de Microsoft.
  2. Compilez l'extension en utilisant make et gcc.
  3. Installez l'extension dans votre base de données PostgreSQL avec la commande :
CREATE EXTENSION pg_durable;

3. Configuration de base

Une fois l'extension installée, vous pouvez configurer pg_durable selon vos besoins. Par exemple, vous pouvez définir le niveau de journalisation ou activer des fonctionnalités spécifiques comme la compensation automatique des transactions.

4. Création d'un workflow transactionnel

Pour créer un workflow transactionnel avec pg_durable, vous pouvez utiliser des procédures stockées ou des triggers. Voici un exemple simple de création d'une transaction durable :

-- Créer une procédure stockée pour un workflow transactionnel
CREATE OR REPLACE PROCEDURE durable_workflow()
LANGUAGE plpgsql
AS $$
BEGIN
    -- Début de la transaction durable
    CALL pg_durable.begin();

    -- Étape 1 : Mise à jour du stock
    UPDATE products SET stock = stock - 1 WHERE id = 100;

    -- Étape 2 : Enregistrement de la commande
    INSERT INTO orders (product_id, quantity, status) VALUES (100, 1, 'pending');

    -- Étape 3 : Traitement du paiement
    INSERT INTO payments (order_id, amount) VALUES (currval('orders_id_seq'), 50.00);

    -- Validation de la transaction durable
    CALL pg_durable.commit();
EXCEPTION
    WHEN OTHERS THEN
        -- Annulation de la transaction durable en cas d'erreur
        CALL pg_durable.rollback();
        RAISE;
END;
$$;

Dans cet exemple, toutes les étapes du workflow sont regroupées dans une seule transaction durable. Si une étape échoue, les autres sont automatiquement annulées.

Comparaison avec d'autres solutions

pg_durable n'est pas la seule solution pour gérer des transactions durables. Voici comment elle se compare à d'autres outils populaires :

1. Sagas

Les sagas sont un pattern classique pour gérer des transactions distribuées. Elles consistent à diviser une transaction en plusieurs étapes, chacune pouvant être annulée individuellement en cas d'échec. Cependant, les sagas nécessitent une gestion manuelle et peuvent être complexes à implémenter.

pg_durable simplifie ce processus en intégrant la logique de compensation directement dans la base de données, réduisant ainsi la quantité de code nécessaire.

2. Apache Kafka

Apache Kafka est un système de messagerie distribué souvent utilisé pour gérer des workflows transactionnels. Bien que Kafka soit très performant, il nécessite une infrastructure dédiée et une configuration complexe.

pg_durable, en revanche, s'intègre directement dans PostgreSQL, ce qui simplifie l'architecture et réduit les coûts d'infrastructure.

3. Camunda

Camunda est une plateforme open source pour l'automatisation des workflows. Elle offre une interface graphique pour concevoir des processus métier, mais elle nécessite une infrastructure dédiée et une intégration avec PostgreSQL.

pg_durable, avec son approche intégrée, permet de réduire la complexité et les coûts liés à l'utilisation d'un outil externe comme Camunda.

Avantages et limites de pg_durable

Avantages

  • Simplicité : Intégration directe dans PostgreSQL, sans besoin d'infrastructure externe.
  • Résilience : Garantit l'atomicité et la cohérence des transactions, même en cas de panne.
  • Performance : Réduit les allers-retours entre la base de données et les services externes.
  • Flexibilité : Permet de définir des workflows transactionnels complexes directement dans la base de données.

Limites

  • Compatibilité : Nécessite PostgreSQL 15 ou supérieur. Les versions antérieures ne sont pas supportées.
  • Complexité initiale : Bien que l'outil simplifie la gestion des workflows, sa prise en main peut nécessiter un temps d'adaptation pour les développeurs habitués aux patterns classiques.
  • Documentation : À ce stade, la documentation est encore en développement et peut manquer de détails pour certains cas d'usage avancés.

Futur de pg_durable et tendances associées

pg_durable s'inscrit dans une tendance plus large de bases de données actives, où le moteur de la base de données ne se limite plus au stockage, mais participe activement à l'exécution des logiques métier. Cette approche est de plus en plus adoptée par les entreprises pour simplifier leurs architectures et améliorer la résilience de leurs applications.

Microsoft a déjà annoncé son intention d'améliorer pg_durable, notamment en ajoutant des fonctionnalités comme la gestion des transactions distribuées et une meilleure intégration avec d'autres outils de l'écosystème PostgreSQL. À terme, pg_durable pourrait devenir un standard pour la gestion des workflows transactionnels dans les bases de données relationnelles.

D'autres acteurs du secteur, comme PostgreSQL lui-même ou des entreprises comme Cockroach Labs, pourraient également développer des solutions similaires, renforçant ainsi l'adoption des bases de données actives.

Essayez gratuitement

Si vous souhaitez tester pg_durable et découvrir comment il peut optimiser vos workflows transactionnels, rendez-vous sur le dépôt GitHub de Microsoft pour télécharger l'extension et consulter la documentation.

Pour explorer d'autres outils gratuits et innovants, n'hésitez pas à consulter notre plateforme SOLVYNOR, où vous trouverez des solutions pour optimiser vos projets, que ce soit en développement, en gestion de données ou en automatisation.

Questions fréquentes

Qu'est-ce que pg_durable et pourquoi est-il important ?

pg_durable est une extension open source pour PostgreSQL développée par Microsoft. Elle permet d'exécuter des transactions durables directement dans la base de données, simplifiant ainsi la gestion des workflows complexes et améliorant la résilience des applications. Son importance réside dans sa capacité à intégrer la logique métier au cœur du moteur de la base de données, réduisant ainsi la complexité et les coûts liés à l'utilisation d'outils externes.

Comment pg_durable diffère-t-il des sagas ou d'Apache Kafka ?

Contrairement aux sagas, qui nécessitent une gestion manuelle des étapes et de leur compensation, pg_durable automatise ce processus directement dans PostgreSQL. Par rapport à Apache Kafka, qui est un système de messagerie externe, pg_durable s'intègre nativement dans la base de données, simplifiant ainsi l'architecture et réduisant les coûts d'infrastructure.

Quels sont les prérequis pour utiliser pg_durable ?

Pour utiliser pg_durable, vous aurez besoin de PostgreSQL 15 ou supérieur, d'un système d'exploitation compatible (Linux, Windows ou macOS), et des droits d'administration pour installer des extensions. Aucune autre dépendance externe n'est requise, ce qui simplifie grandement le déploiement.

Est-ce que pg_durable est adapté aux petites entreprises ou est-il réservé aux grands projets ?

pg_durable est conçu pour être flexible et peut être utilisé par des entreprises de toutes tailles. Bien qu'il soit particulièrement utile pour les projets complexes nécessitant une gestion robuste des transactions, il peut également simplifier les workflows des petites entreprises en réduisant la quantité de code nécessaire pour gérer les transactions.

Où puis-je trouver la documentation et le code source de pg_durable ?

Le code source et la documentation de pg_durable sont disponibles sur le dépôt GitHub de Microsoft. Vous y trouverez des instructions détaillées pour l'installation, la configuration et l'utilisation de l'extension.

ia agent seo fr

Passer de la lecture à l’action

Découvrez nos services, secteurs et méthode — puis échangeons sur votre contexte.

Besoin d'aide pour votre projet ?

Nos experts SOLVYNOR au Maroc sont disponibles pour discuter de vos besoins.

Discuter de votre projet