Aller au contenu

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_v2
  • wp_ccx_offers_norm_v2
  • wp_ccx_sync_runs_v2
  • wp_ccx_feed_files
  • wp_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.


Voir aussi