Aller au contenu

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 HttpRouteSpec vers 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 aud limite l'usage au service destinataire. Un token émis pour service-a doit être refusé par service-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 DomainError ou TransientError. L'implémentation Python encapsule httpx ; l'implémentation Node.js s'appuie sur fetch.
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 DomainError permanente.
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.