Aller au contenu

Identity Engine

Statut

Draft architectural.

Mission

L'Identity Engine transforme des données produit incertaines en identité canonique stable.

Il répond à la question :

De quel produit parle-t-on réellement ?

Position dans la Platform

Contracts -> Domain -> Identity Engine -> Projection Engine -> Read / Write Services -> Runtime -> Adapters

Responsabilités

L'Identity Engine est responsable de :

  • construire des candidats d'identité ;
  • normaliser les identifiants ;
  • choisir ou produire une identité canonique ;
  • détecter les conflits ;
  • qualifier la confiance d'une identité ;
  • exposer un statut de résolution ;
  • fournir une base stable pour les projections catalogue.

Hors responsabilité

L'Identity Engine ne doit jamais :

  • lire ou écrire en SQL ;
  • dépendre de WordPress ;
  • connaître le frontend ;
  • connaître le runtime ;
  • connaître les marchands ;
  • connaître les flux ;
  • contenir des règles spécifiques à une verticale ;
  • produire du HTML ;
  • décider de la navigation ;
  • décider du SEO.

Concepts principaux

  • Candidate
  • Identifier
  • Canonical Identity
  • Resolver
  • Conflict Policy
  • Projection
  • Quality

Policies internes

  • Candidate Selection Policy
  • Conflict Policy
  • Model Policy
  • Series Policy
  • Generation Policy
  • Numeric Noise Policy
  • Placeholder Policy
  • Resolution Status Policy
  • Severity Policy

Invariants

  • Le Domain ne connaît jamais les verticales.
  • Une identité canonique doit être déterministe.
  • À entrée identique, sortie identique.
  • Une résolution ne doit jamais dépendre du frontend.
  • Une résolution ne doit jamais dépendre de l'ordre arbitraire des offres.
  • Une identité invalide doit être explicitement marquée comme invalide.
  • Une divergence mineure doit être distinguée d'un conflit bloquant.
  • La connaissance métier spécifique appartient aux Vertical Modules, pas à l'Identity Engine.

Décisions issues de l'audit legacy

Le fichier legacy :

includes/platform/domain-core/identity/conflicts.php

ne doit pas être migré comme fichier unique.

Il contient plusieurs responsabilités utiles :

  • scoring candidat ;
  • sélection du meilleur candidat ;
  • détection de modèle faible ;
  • compatibilité de série ;
  • compatibilité de génération ;
  • détection de modèle générique ;
  • détection de modèle spécifique riche ;
  • détection de bruit numérique ;
  • calcul de sévérité ;
  • statut de résolution ;
  • résumé de conflit.

Décision :

conflicts.php = REWRITE STRUCTURE logique métier = KEEP / MIGRATE

Qualité industrielle attendue

Avant intégration dans platform/domain/identity-engine, chaque composant doit valider :

  • responsabilité unique ;
  • zéro WordPress ;
  • zéro SQL ;
  • zéro frontend ;
  • zéro runtime ;
  • tests isolables ;
  • entrées/sorties documentées ;
  • comportement déterministe ;
  • complexité raisonnable ;
  • documentation à jour.

Classification Architecture Atlas

Responsabilité Décision
Candidate MIGRATE
Identifier MIGRATE
Canonical Identity MIGRATE
Resolver À auditer
Projection À auditer
Quality À auditer
Conflict Policy REWRITE STRUCTURE
Candidate Selection Policy MIGRATE
Model Policy MIGRATE
Series Policy MIGRATE
Generation Policy MIGRATE
Numeric Noise Policy MIGRATE
Resolution Status Policy MIGRATE

ADR associés

À créer :

  • ADR — Identity Engine
  • ADR — Conflict Policy Extraction
  • ADR — Domain Core without WordPress
  • ADR — Legacy as Knowledge Source