Glossaire¶
Vocabulaire partagé par les implémentations Python et Node.js. Lorsqu'un nom d'API n'existe que dans un runtime, sa définition l'indique explicitement.
A¶
- Adaptateur HTTP
- Composant qui traduit un
HttpRouteSpecvers un framework concret sans modifier le handler métier. MIC fournit des adaptateurs FastAPI et Litestar en Python, ainsi que Node HTTP, Express, Fastify, Hono et NestJS en Node.js. - Append-only
- Mode de stockage où l'application ajoute des enregistrements sans modifier ni supprimer ceux qui existent déjà. Il est notamment utilisé pour les journaux d'audit immuables.
- Audience-bound (JWT)
- Qualifie un JWT dont la claim
audlimite l'usage au service destinataire. Un token émis pourservice-adoit être refusé parservice-b.
C¶
- Controller
- Le « C » de MIC. Couche fine qui orchestre Model et Interface, par exemple un handler HTTP ou un worker de drain, sans porter les règles métier.
- Cookiecutter scaffold (Python)
- Générateur Python historique présent dans
template/. Il crée un service structuré à partir de quelques réponses. Voir le scaffold Python.
D¶
- Dead-letter
- État final d'un message qui a épuisé ses tentatives. Il reste observable et peut être traité manuellement, mais n'est plus rejoué automatiquement.
DomainError- Erreur canonique qui décrit une violation métier par un code stable, un message et des détails optionnels. Les adaptateurs la convertissent en réponse cliente non transitoire. Voir les erreurs métier.
- Drain
- Passage d'un worker sur une file ou une outbox : il réclame les éléments éligibles, les transmet, puis enregistre leur succès, leur nouvel essai ou leur passage en dead-letter.
G¶
- Générateur de service
- Outil qui produit un projet MIC modifiable et sans format propriétaire. Le
runtime Python utilise le template Cookiecutter ; Node.js fournit
@mic-struct/create-mic-service. Voir les quickstarts Python et Node.js.
H¶
HttpRouteSpec- Contrat d'une route HTTP indépendante du framework : méthode, chemin, handler, nom, catégorie et schémas éventuels. Les adaptateurs de chaque runtime consomment ce même concept.
HttpRequestContext- Vue indépendante du framework sur la requête entrante : en-têtes, paramètres de requête et de chemin, cookies et principal authentifié.
HttpResponseSpec- Réponse explicite d'un handler, composée d'un statut HTTP et d'un corps que l'adaptateur valide puis sérialise.
HttpSuccessEnvelope- Enveloppe canonique des réponses réussies :
{"success": true, "data": <valeur>, "meta": <objet | null>}.
I¶
- Interface
- Le « I » de MIC. Tout ce qui relie le domaine aux systèmes extérieurs : HTTP entrant et sortant, authentification, événements, stockage et observabilité.
- Idempotent
- Qualifie une opération que l'on peut répéter sans changer son résultat final. Une mise à jour par identifiant peut être idempotente ; l'ajout d'un nouvel événement d'audit ne l'est généralement pas.
M¶
- MIC
- Model / Interface / Controller. Une architecture commune qui garde le domaine indépendant des frameworks et des transports. Voir qu'est-ce que MIC ?.
- Mirror tests / tests miroir (Python)
- Convention de l'implémentation Python : l'arbre
tests/reflète le code applicatif et la gate exige 100 % de couverture lignes et branches. Node.js possède ses propres tests natifs, ses vérifications d'archives npm et son test consommateur ; il ne revendique pas cette convention de nommage. Voir les tests miroir. - Model
- Le « M » de MIC. Tout ce qui décrit le quoi : entités, schémas, services et règles métier, indépendamment du framework HTTP ou du mécanisme de persistance.
P¶
- Port / Adapter (vocabulaire hexagonal)
- Termes réservés à leur sens établi en architecture hexagonale. La documentation MIC emploie des noms plus précis, comme « adaptateur HTTP », suivis du framework concerné.
- Push vs Pull (inter-service)
- Deux modes d'échange : en push, le producteur appelle ou publie vers le destinataire ; en pull, le consommateur vient lire les éléments disponibles. MIC privilégie le push pour la livraison courante et sépare le rejeu historique.
R¶
- Read-model
- Projection dénormalisée d'informations possédées ailleurs, optimisée pour un besoin de lecture comme la recherche ou un listing. Elle peut être reconstruite depuis sa source de vérité.
- Rotation double-clé
- Fenêtre de déploiement pendant laquelle le vérificateur accepte un secret courant et un secret précédent. Les émetteurs migrent vers la nouvelle clé avant le retrait de l'ancienne.
S¶
schema.*(Node.js)- Constructeurs de contrats exécutables de
@mic-struct/mic-core. Ils valident les entrées et sorties à l'exécution tout en exposant les types TypeScript correspondants. ServiceAuthSigner- Signe un JWT inter-service limité à une audience, une durée de vie et des portées explicites.
ServiceAuthVerifier- Vérifie la signature, l'expiration, l'audience, l'émetteur et les portées d'un JWT inter-service avant l'exécution du handler.
ServiceHttpClient- Client HTTP sortant qui signe les requêtes inter-service et convertit les
erreurs canoniques en
DomainErrorouTransientError. L'implémentation Python encapsule httpx ; l'implémentation Node.js s'appuie surfetch. StrictSchema(Python)- Base Pydantic v2 immuable qui refuse les champs inconnus et revalide chaque
copie modifiée. En Node.js, les contrats
schema.*remplissent la fonction de validation à l'exécution sans reproduire l'API Pydantic.
T¶
TransientError- Erreur canonique qui indique un échec susceptible de réussir après nouvel
essai, comme une base indisponible ou un service amont en erreur. Les
adaptateurs la distinguent d'une
DomainErrorpermanente. - Transactional outbox
- Motif où un service écrit son état métier et l'événement à publier dans une même transaction. Un dispatcher réclame ensuite l'événement et le transmet avec une politique de nouvel essai explicite.
W¶
- Worker
- Processus qui traite des travaux persistés, par exemple une file ou une outbox. Son cycle de vie, sa cadence et son arrêt forcé restent pilotés par l'infrastructure du service.