Les Frontières de Transaction Camunda — Explication Visuelle

 De nombreux incidents Camunda en production viennent d’un malentendu :

« Chaque tâche BPMN s’exécute séparément »

Faux.
Par défaut, Camunda exécute plusieurs étapes BPMN dans une seule transaction base de données.

Donc si une étape échoue → plusieurs étapes sont annulées.

Comprendre les transaction boundaries permet d’éviter :

  • processus bloqués

  • optimistic locking

  • exécutions en double

  • rollback inattendus


Qu’est-ce qu’une frontière de transaction ?

Une frontière de transaction est un point de sauvegarde dans la base.

Sans frontière → tout s’exécute ensemble
Avec frontière → reprise sécurisée


Exécution par défaut (sans frontière)

Camunda continue jusqu’à rencontrer un wait state.

Wait State

  • User Task

  • Receive Task

  • Timer

  • External Task

À ces points l’état est sauvegardé.


Problème — Effet Domino de Rollback

Service Task A → Service Task B → Service Task C

Si C échoue → A et B sont annulées aussi.

Conséquences :

  • appel API doublé

  • paiement en double

  • incohérence métier


Async Before crée une frontière

Seule l’étape échouée est rejouée.


Async After crée une frontière après exécution

Utilisé avant gateways et parallélisme.


Problème Optimistic Locking

Deux exécutions modifient la même instance.

Sans frontière → boucle d’erreur
Avec async → retry propre


Comportement Interne

Execute → Flush DB → Commit → Continue

Async découpe en plusieurs commits.


Où placer les frontières

EmplacementRaison
Avant appel externeéviter doublons
Avant gatewayéviter conflits
Gateway parallèlesécurité concurrence
Tâche longueéviter blocage

Erreur fréquente

Ajouter async uniquement au début du process.

Cela ne protège pas les étapes internes.


Règle d’Architecture

Tout appel distant doit avoir une frontière transactionnelle.


📚 Lectures recommandées

Pour améliorer la fiabilité :

👉 https://shikhanirankari.blogspot.com/search/label/French

Lire particulièrement :


Conseil Final

BPMN gère le flux
Les transactions gèrent la sécurité

Bien placer les frontières rend votre processus robuste.


💼 Support professionnel disponible

Si vous rencontrez des problèmes sur des projets réels liés au développement backend d’entreprise ou à l’automatisation des workflows, je propose des services de conseil payants, de débogage en production, de support projet et de formations ciblées.

Les technologies couvertes incluent Java, Spring Boot, PL/SQL, Azure, CMS, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM, Flowable), DMN/Drools.

📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com

🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium     

Comments

Popular posts from this blog

OOPs Concepts in Java | English | Object Oriented Programming Explained

Scopes of Signal in jBPM

jBPM Installation Guide: Step by Step Setup