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.

Process Engine

Le moteur qui fait tourner les workflows EDI longue durée (jours, semaines) sans tomber sur un crash applicatif.

Problème

Un cycle PO → ORDRSP → DESADV → INVOIC → REMADV peut s'étaler sur 30 jours, avec des timers (relance 48h), des compensations (annulation à mi-parcours), et 5 décisions humaines possibles. Un code applicatif simple ne tient pas.

Forces

  • L'état doit survivre aux crashes — persistence obligatoire à chaque step.
  • Les timers doivent déclencher même si l'application est down (à reprendre au démarrage).
  • Les compensations doivent être documentées par modèle, pas inventées en code ad-hoc.
  • Le métier doit pouvoir visualiser le workflow (BPMN diagram).

Solution

Adopter un Process Engine : Camunda, Zeebe, Activiti, AWS Step Functions, Netflix Conductor, Temporal. Le workflow est défini en BPMN (ou DSL), déployé comme artefact, exécuté par le moteur. Le moteur garantit at-least-once durabilité, retries déclaratifs, timers, et observabilité du run. Le code applicatif n'implémente que les `task workers` (les actions atomiques) ; le moteur orchestre.

Implémentation EDI

En EDI, un Process Engine est le moyen pragmatique d'implémenter le Process Manager pour des cycles complexes. Cas : un cycle 'expectation 856 dans 24h après 850 sinon escalade' devient un BPMN diagram déployé sur Camunda. Le task worker `send850` publie l'EDIFACT sur Kafka ; le timer Camunda déclenche l'escalade ; un human task ouvre un ticket Jira. Le pattern paye sur la lisibilité métier : le BPMN diagram est compris par les analystes EDI, alors qu'un Java code ne l'est pas.

Anti-patterns

  • Workflow en code Java/Python pur — non versionnable comme modèle, ré-implémenté à chaque évolution.
  • Process Engine pour des workflows courts (< 1 minute) — overengineering, latence inutile.
  • Process Engine partagé entre métiers sans namespacing — un workflow bloque les autres.
  • BPMN diagram décoré sans correspondance précise au code — la documentation diverge du runtime.

Patterns liés

Sources