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.