Aller au contenu
← Idées

Comment choisir entre une intégration en temps réel et par lots sans compromettre les opérations

Choisissez une intégration en temps réel ou par lots selon le coût du décalage, le volume, les possibilités de reprise et la capacité opérationnelle disponible.

Diagramme décisionnel comparant l’intégration en temps réel et le traitement par lots pour des systèmes connectés.

Le choix entre une intégration en temps réel et par lots n’est pas une décision purement technique. Il détermine ce qui se produit lorsqu’une commande change de statut, qu’un stock est épuisé, qu’une facture est corrigée ou qu’une donnée client arrive tardivement dans un autre système. L’erreur courante consiste à supposer que le temps réel est toujours préférable. En réalité, il ajoute des dépendances, des points de défaillance et des exigences opérationnelles qui ne se justifient que lorsque le coût de l’attente dépasse cette complexité.

L’alternative ne consiste pas non plus à lancer une exportation nocturne sans conception. Un processus par lots peut être sûr, efficace et suffisant, mais il nécessite des fenêtres de mise à jour explicites, des contrôles d’intégrité et des mécanismes de reprise. La bonne décision part du cas d’usage : quelle donnée circule, qui agit à partir d’elle, quel préjudice entraîne un décalage et que se passe-t-il si le message arrive deux fois ou n’arrive pas.

La question décisive : que se passe-t-il si la donnée arrive tardivement, en double ou pas du tout ?

La question décisive : que se passe-t-il si la donnée arrive tardivement, en double ou pas du tout ?

Avant de débattre des API, webhooks, files d’attente ou fréquences d’exécution, décrivez l’effet d’une défaillance en termes métier et opérationnels. Une donnée n’est pas critique parce qu’elle appartient à un CRM, un ERP ou un site e-commerce ; elle l’est par la décision ou l’exécution qu’elle permet.

  • Elle arrive en retard : déterminez le décalage maximal acceptable. Il peut être de quelques secondes pour bloquer une transaction, de quelques minutes pour alerter une équipe ou de plusieurs heures pour consolider des rapports.
  • Elle arrive en double : évaluez si le destinataire peut créer deux commandes, répéter un prélèvement, envoyer des communications dupliquées ou simplement mettre à jour le même enregistrement.
  • Elle n’arrive pas : identifiez s’il existe une procédure manuelle, une consultation alternative ou un rapprochement ultérieur pour éviter une perte d’activité.
  • Elle arrive avec des informations obsolètes : définissez quel système fait autorité pour chaque champ et comment résoudre les conflits entre mises à jour.

Il est utile de classer chaque flux selon son objectif. Une intégration de consultation affiche des informations pour guider une personne ; une intégration de décision alimente des règles, segmentations ou priorités ; une intégration d’exécution crée une action irréversible, comme réserver du stock ou émettre une facture ; et une intégration de communication déclenche des messages aux clients ou aux équipes. Les intégrations d’exécution exigent généralement davantage d’immédiateté et de protection contre les doublons. Celles de consultation ou d’analyse tolèrent normalement un traitement différé.

Le temps réel se justifie par une conséquence concrète du retard, et non par l’attente que tous les systèmes reflètent toujours la même chose.

Quand le temps réel est justifié et ce qu’il exige

Le modèle temps réel est pertinent lorsqu’un système doit réagir immédiatement afin qu’un autre puisse achever correctement une opération : validation de disponibilité avant confirmation d’une commande, changement de statut autorisant une expédition ou alerte opérationnelle évitant un incident plus grave.

Une distinction importante existe entre « temps réel » et « rapide ». Un appel synchrone peut répondre pendant l’interaction de l’utilisateur, mais il bloque aussi le processus si le système distant est indisponible. Un événement asynchrone émis lors d’un changement découple l’émetteur, même si le consommateur le traite quelques secondes plus tard. Ces deux modèles peuvent répondre à un besoin de faible latence, mais leurs risques diffèrent.

Signes que le temps réel apporte de la valeur

  • Une attente entraîne une vente perdue, une opération invalide ou une exposition opérationnelle immédiate.
  • La donnée intervient dans une règle d’autorisation, de réservation, d’affectation ou de prévention de la fraude.
  • Un responsable est clairement désigné pour traiter les incidents hors horaires ouvrés lorsque le flux est critique.
  • Les systèmes supportent les nouvelles tentatives, les limites de consommation et les pics de demande sans bloquer les processus essentiels.
  • Le coût du maintien de l’observabilité et de la reprise est inférieur au coût du décalage.

Cette approche implique des exigences non négociables : délais d’attente, nouvelles tentatives avec temporisation progressive, file d’attente ou mécanisme équivalent pour les défaillances transitoires, surveillance des erreurs et alertes exploitables. Elle exige aussi de définir le comportement de l’application lorsque la dépendance ne répond pas : retenir l’opération, l’autoriser sous contrôle, enregistrer une demande en attente ou appliquer une règle temporaire.

Le risque principal consiste à construire une longue chaîne synchrone : le site e-commerce consulte l’inventaire, l’inventaire consulte l’ERP et l’ERP dépend d’un autre service. Chaque maillon augmente la latence et la probabilité d’indisponibilité. Limitez donc les dépendances en ligne aux informations indispensables et traitez le reste de manière asynchrone.

Quand les processus par lots sont plus sûrs et plus efficaces

Un processus par lots regroupe les changements et les transfère selon une cadence définie : chaque heure, plusieurs fois par jour ou à la clôture d’une fenêtre opérationnelle. Il convient lorsque le destinataire n’a pas besoin d’agir immédiatement et peut travailler avec une image des données légèrement décalée.

Ce modèle est souvent adapté à la synchronisation de catalogues, aux rapports, à la consolidation financière, à la mise à jour de segments, aux importations historiques ou aux échanges de volumes importants. Il permet de maîtriser la charge sur des systèmes à capacité limitée, d’exécuter des validations avant publication et de concentrer la supervision sur des fenêtres connues.

Signes qu’un lot est suffisant

  • L’utilisateur ou le processus destinataire peut fonctionner avec des données vieilles de plusieurs heures sans conséquence notable.
  • Le volume est élevé et une transmission individuelle à chaque changement créerait une charge inutile.
  • Les mises à jour servent à l’analyse, à la planification ou à des tâches internes non urgentes.
  • Les informations doivent être validées, enrichies ou regroupées avant leur mise à disposition.
  • L’équipe dispose d’une fenêtre claire pour examiner les exceptions et relancer le traitement.

Le risque habituel n’est pas la latence, mais une fausse impression de maîtrise. Un lot mal conçu peut écraser des changements récents, omettre des enregistrements en raison d’un horodatage erroné ou échouer à mi-parcours sans indiquer clairement quelle partie a été appliquée. Évitez donc de fonder l’extraction uniquement sur « modifié depuis la dernière heure » si les horloges, fuseaux horaires ou nouvelles tentatives ne sont pas maîtrisés. Utilisez des curseurs persistants, des intervalles qui se chevauchent avec déduplication ou des journaux de changements lorsque cela est possible.

Chaque exécution doit également produire un résultat vérifiable : nombre d’enregistrements lus, créés, mis à jour, rejetés ou en attente. Si ces comptages ne peuvent pas être comparés avec la source, le rapprochement sera lent lorsqu’un écart apparaîtra.

Un modèle de décision fondé sur cinq variables pratiques

Pour chaque flux, évaluez les variables suivantes comme faibles, moyennes ou élevées. Leur combinaison évite les décisions guidées par des préférences technologiques.

  1. Tolérance au décalage : combien de temps peut s’écouler avant que la donnée perde son utilité ? Quelques secondes ou minutes avec impact sur une exécution favorisent un événement immédiat ou une consultation en ligne.
  2. Volume et variabilité : combien de changements surviennent et existe-t-il des pics ? Un flux massif et prévisible bénéficie souvent des lots ; quelques événements critiques peuvent être traités immédiatement.
  3. Dépendance opérationnelle : le système émetteur doit-il attendre le destinataire pour poursuivre ? Plus la dépendance est forte, plus il faut découpler au moyen d’événements et d’un traitement asynchrone.
  4. Réversibilité : le résultat peut-il être corrigé sans impact important ? Si une action est irréversible ou coûteuse à annuler, privilégiez validation, idempotence et traçabilité, même si la latence augmente.
  5. Coût de la défaillance : incluez la perte de revenus, le non-respect des processus, la charge manuelle et la confiance client. Un coût élevé exige de meilleurs contrôles, pas nécessairement un appel synchrone.

Une règle utile est la suivante : si l’urgence est élevée mais la dépendance l’est aussi, utilisez un événement immédiat et traitez-le de manière asynchrone. Le changement est ainsi enregistré sans obliger le système source à dépendre de la disponibilité instantanée de la destination. Si l’urgence est faible et le volume élevé, un lot avec rapprochement est généralement l’option la plus simple et la plus robuste.

Modèles hybrides pour concilier rapidité et contrôle

De nombreuses intégrations matures combinent les deux approches. L’objectif n’est pas de choisir une seule étiquette, mais d’attribuer le modèle approprié à chaque partie du flux.

  • Événement immédiat et traitement différé : lors de la création d’une commande, un événement est publié ; les systèmes secondaires le consomment depuis une file d’attente sans bloquer la confirmation.
  • Consultation immédiate et réplication par lots : l’application consulte la source faisant autorité pour une décision critique, tout en maintenant une copie locale actualisée pour les recherches et l’analyse.
  • Lot fréquent et rapprochement : les changements sont synchronisés à intervalles réguliers et un contrôle quotidien détecte les absences, écarts de statut ou erreurs partielles.
  • Mise à jour urgente par exception : le catalogue est transmis par lots, mais un changement important de disponibilité génère une mise à jour prioritaire.

Pour les stocks, par exemple, toutes les données n’exigent pas la même cadence. La réservation liée à l’achat peut nécessiter une confirmation immédiate, tandis que la mise à jour des descriptions ou attributs de produit peut attendre. En facturation, l’émission peut exiger des règles et validations strictes, alors que l’exportation pour l’analyse financière peut s’exécuter dans une fenêtre planifiée. Pour les données clients, un désabonnement aux communications doit être propagé en priorité s’il évite des envois indésirables, mais la consolidation des champs de profil peut être différée.

Contrôles communs et reprise après incident

Quel que soit le modèle, la fiabilité dépend de contrôles explicites. Chaque entité doit avoir un identifiant stable et chaque opération un identifiant de message ou de demande. Le destinataire doit appliquer l’idempotence : traiter deux fois la même instruction doit produire le même résultat que la traiter une seule fois.

  • Définissez le système de référence pour chaque entité et chaque champ afin d’éviter les conflits silencieux.
  • Conservez les états de traitement : reçu, validé, appliqué, rejeté et en attente de nouvelle tentative.
  • Enregistrez la source, la destination, la date, la version du schéma et le motif d’erreur de chaque exception.
  • Distinguez les erreurs transitoires, comme une indisponibilité temporaire, des erreurs permanentes, comme une donnée invalide.
  • Prévoyez une file de messages en échec ou un mécanisme de revue pour ne pas perdre d’éléments après épuisement des tentatives.
  • Concevez des évolutions de schéma compatibles pendant une transition et prévenez avant de retirer des champs ou d’en modifier le sens.

Les alertes doivent renvoyer à une action concrète : accumulation d’éléments en attente, ancienneté maximale non traitée, taux de rejets ou écart entre les comptages de la source et de la destination. Une alerte pour chaque erreur individuelle génère du bruit ; une alerte liée à une dégradation durable permet de prioriser.

Liste de contrôle avant de construire le flux

Liste de contrôle avant de construire le flux
  1. Décrivez l’action métier qui dépend de la donnée et le décalage maximal acceptable.
  2. Documentez ce qui se produit en cas de retard, doublon, absence et conflit de versions.
  3. Identifiez le système de référence et les identifiants partagés.
  4. Estimez le volume moyen, les pics et les limites de la source comme de la destination.
  5. Décidez si l’émetteur peut poursuivre lorsque le destinataire est indisponible.
  6. Définissez les nouvelles tentatives, l’idempotence, la gestion des exceptions et le rapprochement.
  7. Attribuez les responsabilités de surveillance et une procédure de reprise.
  8. Testez les indisponibilités, renvois, exécutions partielles et évolutions de schéma avant d’activer le flux.

La décision la plus solide ne cherche pas une synchronisation instantanée dans tous les systèmes. Elle vise à faire parvenir chaque donnée au moment où elle doit arriver, avec un niveau de contrôle proportionné à son impact et une reprise prévisible lorsque les opérations réelles s’écartent du scénario idéal.

Fuentes y referencias

  1. Web standardsW3C
  2. OWASP Cheat Sheet SeriesOWASP Foundation
  3. Web performanceweb.dev