CQRS
Architecture 🔴 SeniorDéfinition
Command Query Responsibility Ségrégation : sépare les modèles de lecture (Query) et d'écriture (Command). Permet d'optimiser chaque cote indépendamment.
Analogie
Un guichet de banque : un guichet pour déposer (écriture), un autre pour consulter le solde (lecture).
Exemple de code
// Command side
class CreateOrderCmd { execute(data) { db.write(data); } }
// Query side (modele optimise lecture)
class OrderQuery { getList() { return readDb.orders.find(); } }
Cas d'usage
Applications avec des ratios lecture/écriture très différents ou des modèles de lecture complexes.
Anti-pattern
Appliquer CQRS a un simple CRUD — complexité injustifiée.