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.