Detour
Le détour optionnel — activer/désactiver une étape sans redéployer.
Problème
Pendant un audit compliance ou un test A/B, on veut router certains messages par un chemin supplémentaire (audit log enrichi, double-validation, mirror vers staging). Comment faire sans casser le flux nominal ?
Forces
- Le flux nominal doit rester rapide et stable.
- Le détour doit pouvoir être activé/désactivé à chaud.
- Les conditions de détour peuvent évoluer (10 % du trafic, partenaires sélectionnés, types spécifiques).
- Le détour doit pouvoir échouer sans bloquer le flux nominal.
Solution
Insérer un Detour configurable au point critique. Le Detour évalue une condition (feature flag, A/B group, partner whitelist) et : si true, exécute l'étape additionnelle puis revient au flux ; si false, court-circuite. Géré via Control Bus pour activer/désactiver à chaud.
Implémentation EDI
En EDI, le Detour est utilisé pour : (1) doubler la validation Schematron pendant la phase de release d'un nouveau partenaire, (2) capturer une copie de tous les MDN pour un audit, (3) tester un nouveau mapping en parallèle avant cutover. Implémentation Camel : `.choice().when(detourCondition).to(detourEndpoint).end()`. Feature flag piloté par LaunchDarkly ou config.
Anti-patterns
- Detour permanent oublié — devient un point de friction permanent.
- Detour bloquant en cas d'échec — casse le flux nominal.
- Trop de detours empilés — pipeline devient illisible.
Patterns liés
- Control Bus — mécanisme de pilotage.
- Wire Tap — pattern d'observation similaire.
Sources
- Hohpe G., Woolf B. — EIP, Detour (p. 545). www.enterpriseintegrationpatterns.com/patterns/messaging/Detour.html