Aller au contenu principal

Patterns d'Utilisation

Les patterns d'intégration courants dans Ecosystem, avec schémas et cas d'usage.

Cette section présente des modèles de conception

Pour les détails de configuration, consultez les sections Triggers et Workflows.

Vue d'ensemble

PatternDéclencheurCas d'usage typique
PlanificateurCRONSynchronisations périodiques, batches
Import de fichierFileImports de données depuis fichiers
ÉvénementsAPI/Webhook/EventRéactions en temps réel
Exposition d'APIAPI EndpointCréation d'APIs de calcul

Pattern 1 : Planificateur (CRON)

Déclenche un flux à intervalles réguliers définis par une expression CRON.

Schéma

┌─────────────────────────────────────────────────────────┐
│ PLANIFICATEUR │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ ⏰ CRON │ │
│ │ 0 6 * * * │ │
│ │ Exemple: tous les jours à 6h │ │
│ └──────────────┬──────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🎯 TRIGGER │ │
│ │ Planificateur │ │
│ └──────────────┬──────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 📋 WORKFLOW │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ │ │
│ │ │ 📞 Appel │───▶│ 🔄 Boucle│ │ │
│ │ │ API │ │ (items) │ │ │
│ │ └────┬─────┘ └────┬─────┘ │ │
│ │ │ │ │ │
│ │ │ ▼ │ │
│ │ │ ┌──────────┐ │ │
│ │ │ │ 📤 Envoi │ │ │
│ │ │ │ API │ │ │
│ │ │ └──────────┘ │ │
│ │ │ │ │
│ └───────┼─────────────────────────────────┘ │
│ │ │
│ │ ┌──────────────┐ ┌──────────────┐ │
│ └─▶│ 🌐 SYSTÈME │ │ 🎯 SYSTÈME │ │
│ │ SOURCE │ │ CIBLE │ │
│ └──────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘

Variante avec paramètres

┌─────────────────────────────────────────────────────────┐
│ PLANIFICATEUR AVEC PARAMÈTRES │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ ⏰ CRON │ │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 📞 Appel API │ │
│ │ ⚙️ Avec paramètres │ │
│ │ (date, page, filters) │ │
│ └──────┬──────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🔄 Boucle résultats │ │
│ │ 📄 Pagination possible │ │
│ └──────┬──────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 📤 Envoi données │ │
│ └─────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘

Cas d'usage

Cas d'usageCRONDescription
Sync quotidienne stocks0 6 * * *Synchroniser ERP → E-commerce tous les matins
Export hebdomadaire0 2 * * 1Exporter vers un partenaire chaque lundi
Polling API*/5 * * * *Vérifier les nouvelles commandes toutes les 5 min
Avantages
  • Paramétrage flexible (expressions CRON)
  • Exécutions prévisibles et traçables
  • Indépendant des systèmes source/cible

Pattern 2 : Import de Fichier

Déclenche un flux lorsqu'un fichier est déposé (upload, SFTP ou email).

Schéma - Mode Fichier Entier

┌─────────────────────────────────────────────────────────┐
│ IMPORT DE FICHIER │
│ (Mode Fichier Entier) │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ SOURCES DE FICHIERS │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌────────┐│ │
│ │ │ 📤 Upload│ │ 🔐 SFTP │ │ 📧 Email││ │
│ │ └────┬─────┘ └────┬─────┘ └───┬────┘│ │
│ │ └──────────────┼─────────────┘ │ │
│ └─────────────────────┼───────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🎯 TRIGGER │ │
│ │ Fichier │ │
│ │ Format: CSV, XML, XLS, JSON │ │
│ └──────────────┬──────────────────────────┘ │
│ │ │
│ │ Mode: FICHIER ENTIER │
│ │ (1 exécution = 1 fichier) │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 📋 WORKFLOW │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ │ │
│ │ │ 📄 Parse │───▶│ 🔄 Boucle│ │ │
│ │ │ fichier │ │ lignes │ │ │
│ │ └────┬─────┘ └────┬─────┘ │ │
│ │ │ │ │ │
│ │ │ ▼ │ │
│ │ │ ┌──────────┐ │ │
│ │ │ │ 📤 Envoi │ │ │
│ │ │ │ données │ │ │
│ │ │ └──────────┘ │ │
│ └───────┼─────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘

Schéma - Mode Ligne par Ligne

┌─────────────────────────────────────────────────────────┐
│ IMPORT DE FICHIER │
│ (Mode Ligne par Ligne) │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 📄 FICHIER │ │
│ │ (1000 lignes) │ │
│ └──────────────┬──────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🎯 TRIGGER │ │
│ │ Mode: LIGNE PAR LIGNE │ │
│ │ (1 exécution = 1 ligne) │ │
│ └──────────────┬──────────────────────────┘ │
│ │ │
│ │ 1000 exécutions │
│ │ (parallèles ou avec intervalle) │
│ │ │
│ ┌─────────┼─────────┼─────────┼─────────┐ │
│ ▼ ▼ ▼ ▼ ▼ │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌──────┐ │
│ │📋 Ligne│ │📋 Ligne│ │📋 Ligne│ │📋 Ligne│ │ ... │ │
│ │ 1 │ │ 2 │ │ 3 │ │ N │ │ │ │
│ │ Flow │ │ Flow │ │ Flow │ │ Flow │ │ │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ └──────┘ │
│ │
│ ⚡ Option: Intervalle de traitement entre les lignes │
│ (pour ne pas surcharger le système cible) │
│ │
└─────────────────────────────────────────────────────────┘
Astuce : Intervalle de traitement

Si le système cible ne peut pas absorber les lignes à vitesse maximale, définissez un intervalle de traitement entre les lignes.

Cas d'usage

Cas d'usageModeDescription
Import catalogueFichier entierImport quotidien d'un CSV de 50 000 produits
Mise à jour prixLigne par ligneChaque ligne déclenche une mise à jour API
Import EDIFichier entierRéception de fichiers XML partenaire

Pattern 3 : Réception d'Événements

Réagit en temps réel à des événements (webhooks, API endpoints, Pub/Sub).

Schéma - Avec routage Switch

┌─────────────────────────────────────────────────────────┐
│ RÉCEPTION D'ÉVÉNEMENTS AVEC ROUTAGE │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ 📦 OMS │ │ 💼 ERP │ │ 📊 PIM │ │
│ │(Commandes)│ │ (Stocks) │ │(Produits) │ │
│ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ │
│ └──────────────┼──────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🎯 TRIGGER │ │
│ │ Webhook │ │
│ │ POST /events │ │
│ └──────────────┬──────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🔀 SWITCH │ │
│ │ (type d'événement) │ │
│ └──────┬──────────────────────────────────┘ │
│ │ │
│ ┌─────┼─────┬─────────────┐ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ CASE │ │ CASE │ │ CASE │ │ ... │ │
│ │order │ │stock │ │product│ │ │ │
│ └──┬───┘ └──┬───┘ └──┬───┘ └──────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │📤Envoi│ │📤Envoi│ │📤Envoi│ │
│ │ ERP │ │ WMS │ │ CMS │ │
│ └──────┘ └──────┘ └──────┘ │
│ │
│ ⚡ Avantage: Découpage pour limiter la complexité │
│ Un seul point d'entrée, plusieurs traitements │
│ │
└─────────────────────────────────────────────────────────┘
Avantage : Découpage

Un seul point d'entrée, plusieurs traitements. Limite la complexité en séparant les cas.

Schéma - Temps réel simple

┌─────────────────────────────────────────────────────────┐
│ RÉCEPTION D'ÉVÉNEMENTS │
│ (Temps Réel Simple) │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🛒 E-COMMERCE │ │
│ │ (Shopify) │ │
│ │ Webhook: order/created │ │
│ └──────┬──────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🎯 TRIGGER │ │
│ │ Webhook │ │
│ │ POST /webhooks/shopify/orders │ │
│ └──────┬──────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 📋 WORKFLOW │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ │ │
│ │ │ ✅ Valider│─▶│ 🔄 Transf│ │ │
│ │ │ commande │ │ données │ │ │
│ │ └────┬─────┘ └────┬─────┘ │ │
│ │ │ │ │ │
│ │ │ ▼ │ │
│ │ │ ┌──────────┐ │ │
│ │ │ │ ➕ Créer │ │ │
│ │ │ │ dans │ │ │
│ │ │ │ ERP │ │ │
│ │ │ └────┬─────┘ │ │
│ │ │ │ │ │
│ │ │ ├──────────┐ │ │
│ │ │ │ │ │ │
│ │ │ ▼ ▼ │ │
│ │ │ ┌──────────┐ ┌──────────┐│ │
│ │ │ │ 📧 Notif │ │ 💼 ERP ││ │
│ │ │ │ client │ │ ││ │
│ │ │ └──────────┘ └──────────┘│ │
│ └───────┼─────────────────────────────────┘ │
│ │
│ ⏱️ Latence: Quelques secondes entre l'événement │
│ et le traitement │
│ │
└─────────────────────────────────────────────────────────┘

Cas d'usage

Cas d'usageTriggerDescription
Commande → ERPWebhookCréation automatique à chaque commande
Stock → E-commerceEventSynchronisation temps réel
Paiement → NotificationWebhookEmail de confirmation

Pattern 4 : Exposition d'API

Crée des endpoints HTTP pour des calculs ou agrégations sans stockage.

Schéma - Calcul simple

┌─────────────────────────────────────────────────────────┐
│ EXPOSITION D'API │
│ (Calcul Simple) │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 👤 CLIENT │ │
│ │ GET /api/calculate-shipping?weight=5 │ │
│ └──────┬──────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🎯 TRIGGER │ │
│ │ API Endpoint │ │
│ │ Route: /api/calculate-shipping │ │
│ └──────┬──────────────────────────────────┘ │
│ │ │
│ │ Données d'entrée: { weight: 5 } │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 📋 WORKFLOW │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ │ │
│ │ │ ✅ Valider│─▶│ 📞 Appeler│ │ │
│ │ │ entrées │ │ API │ │ │
│ │ └────┬─────┘ └────┬─────┘ │ │
│ │ │ │ │ │
│ │ │ ▼ │ │
│ │ │ ┌──────────┐ │ │
│ │ │ │ 📤 Retour│ │ │
│ │ │ │ réponse │ │ │
│ │ │ └────┬─────┘ │ │
│ └───────┼──────────────┼───────────────────┘ │
│ │ │ │
│ │ │ Réponse: { "price": 12.50 } │
│ │ ▼ │
│ │ ┌──────────┐ │
│ │ │ 👤 CLIENT│ │
│ │ │ (Réponse)│ │
│ │ └──────────┘ │
│ │ │
│ ⚡ Pas de stockage: calcul à la volée et retour immédiat │
│ │
└─────────────────────────────────────────────────────────┘

Schéma - Agrégation multi-sources

┌─────────────────────────────────────────────────────────┐
│ EXPOSITION D'API │
│ (Agrégation Multi-Sources) │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 👤 CLIENT │ │
│ │ GET /api/customer-360?id=12345 │ │
│ └──────┬──────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🎯 TRIGGER │ │
│ │ API Endpoint │ │
│ └──────┬──────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 📋 WORKFLOW │ │
│ │ Appels parallèles │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌────────┐│ │
│ │ │ 📊 CRM │ │ 💼 ERP │ │ 🎫 Sup ││ │
│ │ │ (client) │ │(commandes)│ │(tickets)││ │
│ │ └────┬─────┘ └────┬─────┘ └───┬────┘│ │
│ │ └─────────────┼────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌──────────┐ │ │
│ │ │ 🔄 Agréger│ │ │
│ │ │ & Formater│ │ │
│ │ └────┬─────┘ │ │
│ └──────────────────┼─────────────────────┘ │
│ │ │
│ │ Réponse: Vue 360° du client │
│ ▼ │
│ ┌──────────┐ │
│ │ 👤 CLIENT│ │
│ │ (Réponse)│ │
│ └──────────┘ │
│ │
│ 📦 Réponse agrégée: Vue 360° du client │
│ │
└─────────────────────────────────────────────────────────┘

Cas d'usage

Cas d'usageMéthodeDescription
Calcul frais de portGETCalcul selon poids et destination
Vue client 360°GETAgrégation CRM + ERP + Support
Validation donnéesPOSTVérification de validité
Avantage

Pas de stockage, calcul à la volée. API appelable par n'importe quel système.


Quel pattern choisir ?

BesoinPattern recommandé
Synchronisation périodiquePlanificateur
Import de fichiers partenairesImport de fichier
Réaction temps réelÉvénements
API de calcul simpleExposition d'API
Gros volumes en batchPlanificateur ou Import fichier
Routage vers différents systèmesÉvénements avec Switch

En savoir plus