ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

Saga Orchestration

Le pattern transactionnel pour les workflows EDI à plusieurs systèmes : pas d'XA, juste des compensations applicatives.

Problème

Un cycle EDI traverse plusieurs systèmes (ERP, WMS, TMS, billing) qui ne supportent pas XA. Comment garantir la cohérence end-to-end quand une étape échoue à mi-parcours ?

Forces

  • XA cross-system n'est ni disponible ni performant.
  • Sans compensation, un crash entre l'étape 3 et l'étape 5 laisse le système incohérent.
  • Les compensations doivent être idempotentes (rejouées plusieurs fois sans dommage).
  • Une saga complexe doit être observée et reprise après crash.

Solution

Définir le workflow comme une séquence de N steps, chacun avec son inverse explicite (compensation). Un orchestrator centralisé (Process Engine, Temporal, AWS Step Functions) exécute step après step. Si step K échoue, l'orchestrator exécute les compensations de step K-1 → 1 dans l'ordre inverse. Exemple EDI : (a) book PO, (b) reserve inventory, (c) schedule transport, (d) create invoice. Échec en (d) → compensation (c) (release transport slot), (b) (release inventory), (a) (cancel PO).

Implémentation EDI

En EDI, la Saga Orchestration est la voie réaliste pour les workflows multi-systèmes. Cas Walmart : un 850 reçu doit (1) créer la commande dans l'ERP, (2) réserver le stock dans le WMS, (3) planifier le 856 dans le TMS, (4) émettre l'855. Si (4) échoue (TMS down), l'orchestrator déclenche (3) release-stock, (2) cancel-order, et envoie un 855 négatif au partenaire. Implémentations : Temporal, Camunda Saga, AWS Step Functions Saga, Conductor.

Anti-patterns

  • Saga sans compensation pour chaque step — un crash en milieu laisse l'état incohérent.
  • Compensation non-idempotente — un retry annule deux fois la même réservation.
  • Saga orchestrator stateful sans persistence — un crash de l'orchestrator perd la saga en cours.
  • Saga avec dépendances cycliques — la compensation peut boucler à l'infini.

Patterns liés

Sources