// Architecture Logicielle — Référence Complète

Les grandes architectures
logicielles

Panorama des patterns architecturaux fondamentaux, de la couche monolithique aux systèmes distribués.

📖

La loi fondamentale de Robert C. Martin (Uncle Bob)

« Le but d'une bonne architecture est de minimiser les ressources humaines nécessaires pour construire et maintenir un système. » Une architecture n'est pas une technologie — c'est une décision sur ce qui peut changer facilement et ce qui doit rester stable. Elle sépare la politique (les règles métier) des détails (les frameworks, les bases de données, le réseau).

🌳

Arbre de décision architectural

Pas sûr de quelle architecture choisir ? Répondez à 5 questions couvrant stade, domaine, organisation, NFR et coût du changement pour obtenir une recommandation personnalisée.

01

Architectures Monolithiques

02

Architectures "Propres" — École Uncle Bob

03

Architectures Orientées Services

04

Architectures Événementielles & Réactives

05

Architectures Modulaires & Composants

🧩
Plugin
Architecture Plugin (Microkernel)

Un noyau stable expose des points d’extension. Les fonctionnalités sont des plugins indépendants. Uncle Bob : le système central ne dépend PAS des plugins, c’est l’inverse. Exemple canonique : un IDE avec ses extensions.

MicrokernelExtension PointsStable Core
« Protégez le noyau des détails volatils. »
🏗️
Component-Based
Architecture par Composants

Décomposition en composants autonomes, réutilisables, avec interfaces claires. Chaque composant encapsule son état et sa logique. Fondement des frameworks modernes (React, Vue, Web Components). Favorise la réutilisabilité.

EncapsulationRéutilisabilitéInterface
🌿
Modular Monolith
Monolithe Modulaire

Un seul déploiement mais une structure interne fortement modulaire avec frontières claires entre modules. Le meilleur des deux mondes : simplicité opérationnelle du monolithe + séparation des préoccupations des microservices. Recommandé comme étape avant microservices.

Modules isolésDéploiement simpleBounded Modules
06

Architectures Distribuées & Cloud-Native

🕸️
Service Mesh
Architecture Service Mesh

Couche d’infrastructure dédiée à la communication inter-services (Istio, Linkerd). Gère : la découverte, le load balancing, le chiffrement, l’observabilité. La logique réseau sort du code applicatif pour aller dans le mesh.

IstioSidecar ProxymTLSObservabilité
🔄
Saga Pattern
Architecture Saga

Gestion des transactions distribuées sans 2PC. Séquence de transactions locales compensées en cas d’échec. Deux modes : Choreography (événements) ou Orchestration (saga orchestrateur central). Complexe mais incontournable en microservices.

Transactions distribuéesCompensationEventual Consistency
📡
Micro-Frontends
Micro-Frontends

Application du principe microservices au frontend. Chaque équipe possède sa slice verticale complète : backend + frontend. Indépendance de déploiement, de technologie. Module Federation (Webpack) en est l’implémentation moderne.

Module FederationAutonomie équipeVertical Slice
Monolithique
Architecture Propre / DDD
Orientée Services
Événementielle
Modulaire
Distribuée / Cloud