Qu’est-ce que l’architecture logicielle ?
Ensemble de structures et décisions qui définissent l’organisation d’un logiciel et ses interactions.
Différence entre architecture monolithique et microservices
Monolithe : une seule application;
Microservices : application découpée en services indépendants.
Qu’est-ce qu’une architecture en couches (Layered Architecture) ?
Séparation du code en couches : présentation - service - domaine - persistance.
Qu’est-ce que l’architecture hexagonale ?
Découpage en ports et adapters pour isoler domaine et interfaces externes.
Qu’est-ce que l’architecture orientée services (SOA) ?
Organisation autour de services réutilisables exposés via API.
Différence entre SOA et microservices
Dans le modèle SOA, les services ou modules sont partagés et réutilisés à l’échelle de l’entreprise, tandis que l’architecture en microservices est conçue sur la base de services individuels fonctionnant de manière indépendante.
Qu’est-ce que l’architecture événementielle ?
Communication basée sur événements asynchrones entre composants.
Qu’est-ce qu’un Event Bus ?
Canal central pour diffuser et recevoir des événements dans une architecture événementielle.
Qu’est-ce que CQRS ?
Command Query Responsibility Segregation : séparation lecture/écriture pour optimiser performance.
Qu’est-ce que le Domain-Driven Design (DDD) ?
Méthodologie pour modéliser un logiciel autour du domaine métier.
Différence entre Layered Architecture et Hexagonal Architecture
Layered : dépendances linéaires;
Hexagonal : indépendance du domaine vis-à-vis des infrastructures.
Qu’est-ce qu’un Microkernel Architecture ?
Noyau minimal extensible via plugins pour ajouter fonctionnalités.
Qu’est-ce qu’une architecture serverless ?
Déploiement de fonctions sans gérer serveur
Qu’est-ce que le CAP theorem ?
Un système distribué ne peut garantir simultanément Consistency, Availability et Partition tolerance.
Différence entre scaling horizontal et vertical
Horizontal : ajouter des instances;
Vertical : augmenter ressources d’une instance.
Qu’est-ce que le load balancing ?
Répartition du trafic entre plusieurs serveurs ou instances.
Qu’est-ce qu’un monolithe modulaire ?
Monolithe organisé en modules internes, facilite transition vers microservices.
Qu’est-ce que le service discovery ?
Mécanisme permettant aux services de se localiser dynamiquement dans un cluster.
Différence entre synchronous et asynchronous communication
Synchronous : attente de réponse immédiate;
Asynchronous : pas d’attente, message queue.
Qu’est-ce que le pattern API Gateway ?
Point d’entrée unique pour exposer plusieurs microservices aux clients.
Qu’est-ce qu’un circuit breaker ?
Pattern pour isoler un service défaillant et éviter propagation des erreurs.
Qu’est-ce que le pattern Saga ?
Gestion de transactions distribuées via orchestration ou choreography.
Qu’est-ce que le pattern Strangler Fig
Migration progressive d’un monolithe vers microservices en remplaçant modules progressivement.
Différence entre REST et GraphQL
REST : endpoints fixes;
GraphQL : query flexible et unifiée.