Persistance¶
Vue d'ensemble¶
La persistance est responsable de l'enregistrement durable des données produites par le Pipeline.
Elle constitue le point de transition entre les traitements temporaires réalisés pendant une synchronisation et l'état persistant de la Platform.
Toutes les données utilisées par le Runtime, le Frontend, les Read Services et les outils d'exploitation proviennent de cette couche.
La persistance garantit que les informations produites par le Pipeline restent cohérentes, traçables et réutilisables.
Position dans le Pipeline¶
Ingestion
│
▼
Stage
│
▼
Normalisation
│
▼
Enrichissement
│
▼
Persistance
│
▼
Runtime
Une fois les données persistées, elles deviennent disponibles pour l'ensemble de la Platform.
Mission¶
La couche de persistance a pour mission de conserver durablement les résultats produits par le Pipeline.
Elle assure notamment :
- l'enregistrement des offres normalisées ;
- la conservation des informations de synchronisation ;
- la disponibilité des données pour les projections ;
- la traçabilité des traitements.
La persistance ne réalise aucun calcul métier.
Principes¶
La persistance applique plusieurs principes fondamentaux.
Source unique¶
Chaque information persistée possède une source clairement identifiable.
Il doit toujours être possible de remonter :
- au marchand ;
- au flux d'origine ;
- au traitement ayant produit la donnée.
Cohérence¶
Toutes les données enregistrées doivent respecter les invariants définis par le Domain Core.
La persistance ne doit jamais enregistrer volontairement un état incohérent.
Durabilité¶
Une fois validées, les données deviennent la référence utilisée par le Runtime.
Elles restent disponibles jusqu'à leur remplacement par une synchronisation ultérieure.
Les principales données persistées¶
La Platform conserve notamment :
- les données brutes du Stage ;
- les offres normalisées ;
- les informations de synchronisation ;
- les projections ;
- les caches techniques ;
- les indicateurs d'exécution.
Chaque famille possède son propre cycle de vie.
Relation avec la base de données¶
La persistance s'appuie sur les tables de la Platform.
Parmi les principales :
wp_ccx_sync_stage_raw_v2wp_ccx_offers_norm_v2wp_ccx_sync_runs_v2wp_ccx_feed_fileswp_ccx_catalog_nav_cache_v1
Ces tables sont documentées dans le chapitre Database.
Le Pipeline manipule leur contenu sans exposer directement leur structure aux autres couches.
Traçabilité¶
Chaque écriture doit pouvoir être reliée :
- à une synchronisation ;
- à un marchand ;
- à un traitement du Pipeline ;
- à une date d'exécution.
Cette traçabilité facilite :
- les audits ;
- les investigations ;
- les rejouements ;
- les analyses de performance.
Ce que la persistance ne fait jamais¶
La persistance ne doit jamais :
- appliquer des heuristiques métier ;
- construire une identité canonique ;
- résoudre un conflit ;
- produire un affichage Frontend.
Elle se limite à enregistrer l'état produit par les traitements précédents.
Invariants¶
La couche de persistance respecte plusieurs invariants.
Déterminisme¶
À traitement identique, les données enregistrées doivent être identiques.
Intégrité¶
Les écritures doivent préserver la cohérence des informations.
Traçabilité¶
Chaque donnée persistée doit pouvoir être reliée à son origine.
Isolation¶
La persistance ne contient pas de logique métier.
Évolution¶
À mesure que la Platform évoluera, de nouvelles structures de données pourront être introduites.
Toutefois, les principes resteront identiques :
- séparation entre traitements et stockage ;
- cohérence des données ;
- traçabilité complète ;
- stabilité des informations persistées.
Cette approche garantit une base fiable pour l'ensemble des composants de CMonChoix.