Un module = une responsabilité métier, des interfaces explicites, des dépendances maîtrisées et un cycle de vie versionné. Voici notre cadre pour concevoir des modules qui grandissent sans dette technique.
Un module couvre un usage métier unique (ex. panier, paiement, recherche). Il expose des capacités via des interfaces (API/événements) et ne connaît pas l’UI.
Livrables : description fonctionnelle, invariants, cas limites, glossaire.
Schémas d’entrée/sortie versionnés, validation stricte, gestion des erreurs normalisée (codes, messages, retrys idempotents).
Livrables : schémas JSON/Protobuf, exemples, règles de validation.
REST/GraphQL avec compatibilité ascendante. Pagination, filtrage, tri, et rate limiting.
Événements domain pour propager les changements sans couplage fort. Rejeu et DLQ pour résilience.
Timeouts, retrys exponentiels, circuit breaker, idempotence. Traçage des corrélations requête/événement.
Dépendances uniquement sur interfaces stables. Aucun accès direct aux tables d’un autre module. Préférer les façades internes ou les API.
Contrôles : revues d’architecture, analyse de graphe des imports, tests de contrat.
Les scénarios s’assemblent via un orchestrateur (service de workflow) ou par chorégraphie d’événements.
SemVer : MAJOR (rupture), MINOR (ajouts compatibles), PATCH (correctifs).
Annonce des changements via changelog et RFC internes.
Maintenir N-1 versions d’API et d’événements. Planifier les suppressions, fournir des guides de migration.
Tests de contrat producteurs/consommateurs (Pact), vérifiés en CI pour éviter les régressions inter-modules.
Corrélation requêtes/événements, IDs de corrélation propagés, niveaux standards (DEBUG→ERROR).
SLI/SLO : latence P95, erreurs, saturation, débit. Tableaux de bord par domaine.
Alertes actionnables, seuils dynamiques, garde-fous sur faux positifs.
Rédiger des ADR (Architecture Decision Records) courts et datés. Lier code, schémas et tests.
Inventaire : propriétaire, SLA, versions exposées, dépendances, alertes, tableaux de bord.
Atelier 3h : cartographie, règles de contrats, plan de versioning et premiers tests de contrat. Repartez avec une feuille de route opérationnelle.