Posts

Showing posts with the label saga pattern explained

Gestion des Erreurs dans les Workflows (Incidents, Retries, Compensation avec Camunda 8)

Image
  Introduction Dans les systèmes basés sur workflows, les erreurs ne sont pas rares — elles sont inévitables . Avec Camunda 8 , la gestion des erreurs repose sur trois piliers : Incidents Retries (réessais) Compensation (rollback métier) Ce guide explique comment construire des workflows résilients et robustes . 🧠 Types d’Erreurs dans Camunda 8 🔹 Erreurs techniques Timeout API Panne réseau Erreur base de données 🔹 Erreurs métier Validation échouée Règles DMN invalides 👉 Ces erreurs doivent être gérées différemment dans BPMN. ⚠️ Incidents dans Camunda 8 📌 Définition Un incident est créé lorsque le workflow ne peut plus continuer. 🔹 Cas typiques : Retries épuisés Variables invalides Erreur non gérée 🔴 Exemple : Appel API échoue Retries utilisés Incident créé Workflow bloqué 👉 Une intervention manuelle est nécessaire via Operate. 🔧 Résolution : Corriger la cause Mettre à jour les données Relancer le workflow 🔁 Mécanisme de Retry 🔹 Fonctionnement : Chaque tâche = un job Wor...

Error Handling in Workflows (Incidents, Retries, Compensation in Camunda 8)

Image
  Introduction In workflow-driven systems, failures are not exceptions—they are expected . With Camunda 8 Official Documentation  error handling is built into the engine using incidents, retries, and BPMN-based compensation patterns . This blog covers: Incident handling in Camunda 8 Retry mechanisms (job-level resilience) Compensation patterns in workflows Production-ready error handling strategies 🧠 Understanding Errors in Camunda 8 Types of Errors: Technical Errors → API failure, DB issues Business Errors → Validation failures, rules 👉 Camunda does not automatically handle all errors — you must design handling logic in BPMN. ⚠️ Incidents in Camunda 8 What is an Incident? An incident occurs when a workflow cannot proceed and is stuck at a step. When are Incidents Created? Job retries exhausted Invalid variables Decision evaluation failure Unhandled BPMN error 🔴 Example Flow: Service task calls external API API fails Retries exhausted Incident created → workflow stops ...

Microservices Communication Patterns — Complete Guide

Image
 In modern distributed systems, services rarely work in isolation. They must communicate efficiently, reliably, and securely. Choosing the right communication pattern directly affects: Performance Scalability Fault tolerance System complexity This guide explains the most important microservices communication patterns with real examples. 📌 Why Communication Patterns Matter Poor communication design leads to: Cascading failures Tight coupling High latency Complex debugging Good communication design enables: ✔ Resilience ✔ Loose coupling ✔ Scalability ✔ Observability 🧭 Two Main Communication Types Microservices communication falls into two categories: Type Description Synchronous Immediate response required Asynchronous Message-based, non-blocking 🖼️ Communication Overview 4 1️⃣ REST (Synchronous HTTP) Most common pattern. Service A calls Service B via HTTP request. Example RestTemplate restTemplate = new RestTemplate (); String response = restTemplate . getForObject ( ...