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.

Scatter-Gather

Le fan-out/fan-in — demander à 5 partenaires en parallèle et prendre la meilleure réponse.

Problème

Pour un Request For Quote (REQOTE), on veut interroger 5 fournisseurs en parallèle et choisir la meilleure offre. Comment paralléliser sans bloquer ?

Forces

  • Séquentiel = N × latence individuelle (insupportable si N=10).
  • Le client veut une réponse rapide même si certains destinataires sont lents.
  • Stratégies différentes : tous (wait for all), n premiers, premier qui répond, meilleur résultat selon critère.
  • EDI : certains partenaires peuvent ne pas répondre du tout — il faut un timeout.

Solution

Le coordinateur (Scatter-Gather) envoie le message en parallèle à N destinataires (via Recipient List ou Publish-Subscribe), démarre un timer, collecte les réponses arrivant en désordre, et applique une stratégie d'agrégation : 'all', 'first N', 'best per critère'. Retourne la réponse agrégée après timeout ou complétion.

Implémentation EDI

En EDI, cas typique : REQOTE à 5 fournisseurs, attendre 30 secondes, prendre les 3 premières QUOTES reçues et présenter à l'acheteur. Implémentation Camel : `multicast().parallelProcessing().aggregationStrategy(bestQuote)`. Pour PEPPOL multi-AP discovery, on interroge plusieurs SMPs en parallèle et on prend la première réponse cohérente.

Anti-patterns

  • Pas de timeout — un destinataire silencieux bloque tout.
  • Wait-for-all rigide quand certains destinataires sont chroniquement lents.
  • Réponse partielle masquée — l'utilisateur final croit avoir 5 quotes alors qu'il en a 2.

Patterns liés

Sources