Aller au contenu

Présentation du Runtime

Vue d'ensemble

Le Runtime regroupe l'ensemble des composants responsables de l'exécution opérationnelle de la Platform.

Alors que le Pipeline décrit la manière dont les données sont transformées, le Runtime est responsable de l'organisation et du pilotage de ces traitements.

Il coordonne les synchronisations, contrôle leur cycle de vie et garantit que les différents composants de la Platform sont exécutés dans le bon ordre.

Le Runtime constitue ainsi la couche d'orchestration de CMonChoix.


Position dans l'architecture

Le Runtime intervient après la définition des traitements du Pipeline.

Feeds
   │
   ▼
Pipeline
   │
   ▼
Runtime
   │
   ▼
Base de données
   │
   ▼
Frontend

Le Pipeline définit quoi faire.

Le Runtime décide quand et comment l'exécuter.


Mission

Le Runtime est responsable de l'exécution globale de la Platform.

Il assure notamment :

  • le lancement des synchronisations ;
  • l'enchaînement des traitements ;
  • le suivi des exécutions ;
  • la détection des erreurs ;
  • la remontée des états d'exécution.

Il ne contient pas de logique métier.


Responsabilités

Le Runtime coordonne plusieurs familles de traitements.

Par exemple :

  • import des flux ;
  • exécution du Pipeline ;
  • reconstruction des projections ;
  • mise à jour des caches ;
  • génération des indicateurs.

Chaque composant conserve néanmoins sa propre responsabilité.


Ce que le Runtime ne fait jamais

Le Runtime ne doit jamais :

  • résoudre une identité produit ;
  • normaliser des données ;
  • enrichir les offres ;
  • appliquer une règle métier ;
  • construire une projection.

Toutes ces opérations appartiennent au Pipeline ou au Domain Core.


Cycle d'exécution

Une synchronisation suit généralement le cycle suivant.

Planification
      │
      ▼
Import
      │
      ▼
Pipeline
      │
      ▼
Persistance
      │
      ▼
Caches
      │
      ▼
Fin d'exécution

Le Runtime supervise l'ensemble de ce cycle.


Isolation

Chaque exécution doit être indépendante.

Une erreur sur un traitement ne doit pas compromettre les autres synchronisations.

Cette isolation facilite :

  • la reprise d'exécution ;
  • le diagnostic ;
  • la stabilité générale de la Platform.

Traçabilité

Chaque exécution doit être identifiable.

Le Runtime conserve notamment :

  • le début d'exécution ;
  • la fin d'exécution ;
  • l'état final ;
  • les erreurs éventuelles ;
  • les indicateurs produits.

Ces informations sont utilisées par les outils d'exploitation.


Invariants

Le Runtime respecte plusieurs principes.

Orchestration uniquement

Le Runtime pilote les traitements.

Il ne réalise pas lui-même les traitements métier.


Déterminisme

Pour un même ensemble de paramètres, le Runtime doit exécuter les mêmes traitements dans le même ordre.


Isolation

Les exécutions restent indépendantes.


Observabilité

Chaque exécution produit suffisamment d'informations pour permettre son analyse.


Évolution

Le Runtime évoluera avec l'apparition de nouveaux traitements et de nouvelles verticales.

Toutefois, son rôle restera identique :

  • orchestrer ;
  • superviser ;
  • journaliser ;
  • garantir la stabilité des exécutions.

Il constitue le moteur opérationnel de la Platform.


Voir aussi