Aller au contenu

Identity Resolver Contract

Le contrat Identity Resolver définit comment une identité produit doit être résolue à partir de candidats, d'identifiants et de signaux métier.

Il ne décrit pas une verticale précise. Il définit le comportement attendu d'un resolver générique.


Sommaire

  • Rôle
  • Pourquoi ce contrat ?
  • Entrées
  • Sorties
  • Responsabilités
  • Ce que le resolver ne fait pas
  • Cycle de résolution
  • Statuts attendus
  • Garde-fous
  • Voir aussi

Rôle

L'Identity Resolver transforme un ensemble de signaux en une identité canonique exploitable.

Il intervient entre :

Identifiers
    ↓
Candidates
    ↓
Resolver
    ↓
Canonical Identity

Son rôle est de choisir, confirmer ou refuser une identité.


Pourquoi ce contrat ?

Chaque verticale possède ses propres règles métier.

Par exemple :

  • Smartphone : stockage, couleur, génération, réseau ;
  • Photo : monture, focale, ouverture, type d'objectif ;
  • TV : taille, technologie dalle, résolution, fréquence ;
  • Gaming : plateforme, édition, bundle.

Mais le mécanisme général de résolution doit rester commun.

Le contrat Identity Resolver évite que chaque verticale reconstruise son propre système complet.


Entrées

Un resolver peut recevoir :

  • identifiants normalisés ;
  • candidats d'identité ;
  • attributs génériques ;
  • attributs verticaux ;
  • score de confiance ;
  • contexte source ;
  • signaux de conflit.

Sorties

Un resolver doit produire :

  • une identité canonique ;
  • un statut de résolution ;
  • un score ou niveau de confiance ;
  • des raisons de résolution ;
  • des éventuels conflits ;
  • des métadonnées d'audit.

Responsabilités

Le resolver est responsable de :

  • comparer les candidats ;
  • sélectionner le meilleur candidat ;
  • détecter les conflits ;
  • produire un statut stable ;
  • exposer les raisons de la décision.

Ce que le resolver ne fait pas

Le resolver ne doit pas :

  • écrire en base ;
  • modifier un feed ;
  • appeler le frontend ;
  • créer une règle métier spécifique dans le Core ;
  • contourner les Vertical Modules ;
  • masquer un conflit réel.

Cycle de résolution

1. Collecte des signaux
2. Construction des candidats
3. Comparaison
4. Détection des conflits
5. Sélection
6. Attribution du statut
7. Projection

Statuts attendus

Les statuts possibles peuvent inclure :

Statut Signification
resolved Identité résolue avec confiance suffisante
resolved_candidate Identité probablement correcte mais conservatrice
conflict_blocking Conflit empêchant la résolution
invalid Données insuffisantes ou incohérentes
unknown Cas non classé

Garde-fous

Le resolver doit conserver plusieurs garde-fous :

  • ne jamais forcer une résolution en cas de conflit fort ;
  • ne jamais masquer un conflit de marque ;
  • ne jamais masquer un conflit de famille produit ;
  • ne jamais confondre bruit marchand et vérité métier ;
  • ne jamais transformer une règle locale en règle Core.

Exemple Smartphone

iPhone 16 Pro 256 Go
iPhone 16 Pro Titanium Black
iPhone 16 Pro Max 256 Go

Résultat :
- iPhone 16 Pro 256 Go peut être résolu
- Pro Max reste un conflit modèle

Exemple Photo

Canon EF-S 55-250mm f/4-5.6
Canon Zoom
Canon objectif EF-S

Résultat :
- la signature optique riche peut être conservée comme garde-fou
- le titre générique seul ne suffit pas toujours à résoudre

État actuel

Smartphone et Photo ont permis d'identifier les premiers besoins d'un contrat de résolution.

Le contrat définitif devra être stabilisé après validation d'une troisième verticale, probablement TV.


Voir aussi