La relation et le mandat
Deux objets vivent sur ce canal, et il ne faut pas les confondre. La relation dit qu’un acteur est lié à un autre, à quel titre et pendant quelle période. Le mandat dit qu’un acteur a le pouvoir d’agir pour un autre. Une relation n’accorde aucun pouvoir ; un pouvoir ne se déduit d’aucune relation.
La relation
Section intitulée « La relation »Une relation porte une nature et un sens explicites, ses parties, sa période, et le fondement qui la justifie. Elle se déclare, se soumet à validation, puis s’active — et l’activation exige le fondement : sans lui, la relation n’est pas opposable.
stateDiagram-v2 direction LR state "Déclarée" as D state "Soumise" as S state "Active" as A state "Suspendue" as U state "Clôturée" as C [*] --> D : nature, sens, parties, période D --> S : soumise à validation S --> A : fondement établi — publie « relationEtablie » A --> U : raison codée, date d'effet — publie « relationSuspendue » A --> C : fin datée et motivée — publie « relationCloturee » U --> C : fin datée et motivée — publie « relationCloturee » C --> [*]
Une relation ne s’écrase jamais : la clôture ouvre la place à une relation nouvelle, et l’ancienne reste lisible avec sa période. Les rôles attribués dans une relation ne peuvent pas déborder de sa période — le contrat refuse un rôle actif hors des bornes de la relation qui le porte.
Le périmètre d’une relation est versionné. Ses membres sont des références typées vers d’autres domaines, avec leur finalité ; une portée dynamique s’écrit dans un langage canonique versionné — jamais une requête vers une base, jamais un filtre d’outil de gestion.
Le mandat
Section intitulée « Le mandat »Le mandat est l’objet juridique du domaine : un mandant, un mandataire, un type, des actes autorisés codifiés, des limites structurées et une date d’effet obligatoire. Il ne devient applicable qu’après une vérification humaine dont la preuve est exigée.
stateDiagram-v2 direction LR state "Enregistré" as E state "Vérifié" as V state "Actif" as A state "Suspendu" as S state "Révoqué" as R state "Expiré" as X [*] --> E : parties, actes, limites, effet — publie « mandatEnregistre » E --> V : validation humaine, preuve produite V --> A : activation à date — publie « mandatActive » A --> S : raison codée, date d'effet A --> R : révocation datée — publie « mandatRevoque » S --> R : révocation datée — publie « mandatRevoque » A --> X : terme atteint — publie « mandatExpire » R --> [*] X --> [*]
Deux règles gouvernent son opposabilité. Deux mandats actifs incompatibles sur la même portée sont refusés — le conflit se voit à l’activation, pas au moment d’agir. Et la révocation est enregistrée en ajout : sa date d’effet est distincte de la date à laquelle on en a eu connaissance, de sorte qu’une révocation reçue après une instruction ne réécrit ni l’instruction ni la décision qui l’a acceptée.
Ce que le mandat rend possible s’interroge par le contrôle de capacité déclarée : un domaine exécutant demande si tel acteur peut faire tel acte pour tel autre, à telle date, et reçoit un verdict — établie, non établie, ambiguë ou indéterminable — conservé avec ses sources, donc reconstituable pour l’audit. Ce verdict ne remplace pas l’autorisation : le domaine exécutant doit encore autoriser la commande chez lui.
Les faits publiés
Section intitulée « Les faits publiés »Canal relation-tiers.relations-et-mandats.v1.
| Fait | Ce qu’il atteste |
|---|---|
relationEtablie |
La relation est active — parties, nature, période |
relationSuspendue |
La relation est suspendue — raison et effet |
relationCloturee |
La relation est terminée — raison et fin ; jamais écrasée |
roleAttribue |
Un rôle est applicable — code canonique, relation, période |
roleRetire |
Un rôle est retiré — fin et raison ; l’historique demeure |
perimetreModifie |
Une nouvelle version de portée s’applique — les membres restent consultables par l’interface synchrone |
mandatEnregistre |
Un mandat est accepté au référentiel — parties, type, statut |
mandatActive |
Un mandat est applicable — période et actes codés ; aucune pièce ni condition libre n’est publiée |
mandatRevoque |
Une révocation est enregistrée — les décisions passées ne sont pas réécrites |
mandatExpire |
Le terme est atteint |
Garanties
Section intitulée « Garanties »Aux garanties communes aux événements, ce canal ajoute que l’ordre est garanti par entité, que le tenant est obligatoire dans l’enveloppe comme dans la partition de transport, et qu’un événement publié ne se supprime jamais : la correction est un fait nouveau qui cite celui qu’il corrige.
La structure exacte des messages est dans le contrat des événements publiés.