--- title: Patterns d'Architecture created: 2026-06-06 updated: 2026-06-06 type: glossary tags: [tech, architecture, design] confidence: high contested: false sources: [synthesized] --- # 📐 Patterns d'Architecture pour Apps Perso Modèles d'architecture pour structurer ses applications personnelles (self-hosted ou cloud). - **Monolith vs Microservices** : Un monolithe est une application unique, les microservices sont des services indépendants découplés. Pour une app perso, le monolithe est souvent plus simple. - **Client-Server** : Architecture fondamentale où un client (front) consomme des services fournis par un serveur (back). - **MVC (Model-View-Controller)** : Pattern séparant les données (Model), l'interface (View) et la logique de contrôle. - **Event-Driven** : Architecture où les composants communiquent via des événements (pub/sub). Idéal pour des systèmes asynchrones. - **CQRS (Command Query Responsibility Segregation)** : Séparation des opérations d'écriture (Command) et de lecture (Query) pour optimiser les deux. - **Hexagonal (Ports & Adapters)** : Isole le cœur métier de la technique. Facilite les tests et le changement de base de données. - **Repository Pattern** : Abstraction de l'accès aux données. Le métier ne sait pas si les données viennent d'une DB, d'une API ou d'un fichier. - **Service Layer** : Couche intermédiaire qui orchestre les cas d'usage en combinant plusieurs repositories. - **Backend for Frontend (BFF)** : Backend spécifique à un type de client (Web, Mobile) qui agrège les microservices sous-jacents. - **12-Factor App** : Méthodologie de conception d'applications cloud-native (config via env, stateless, logs en stdout, etc.). - **Stateless** : Le serveur ne conserve aucun état entre deux requêtes (toute l'info est dans la requête). Facilite le scaling. - **Stateful** : Le serveur conserve l'état (sessions, fichiers). Plus simple pour de petits projets. - **Reverse Proxy Pattern** : Utiliser un proxy (ex: [[traefik]]) devant plusieurs services pour gérer le routage et le SSL. - **API Gateway** : Point d'entrée unique pour toutes les APIs d'un système, gérant auth, rate limiting et routage. - **Cache-Aside** : Pattern où l'application lit d'abord le cache, et en cas de miss, lit la source et remplit le cache. - **Sidecar Pattern** : Un conteneur auxiliaire déployé à côté du conteneur principal pour fournir des fonctionnalités transverses (logs, proxy, config). - **Choreography vs Orchestration** : En microservices, la chorégraphie laisse les services réagir aux événements ; l'orchestration utilise un coordinateur central. ## Liens - Domaine : [[tech]] - Outil : [[traefik]] - [[message-queue]] - [[architecture-monolithique]]