CQRS
Architecture 🔴 SeniorDefinition
Command Query Responsibility Segregation : separe les modeles de lecture (Query) et d'ecriture (Command). Permet d'optimiser chaque cote independamment.
Analogie
Un guichet de banque : un guichet pour deposer (ecriture), 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/ecriture tres differents ou des modeles de lecture complexes.
Anti-pattern
Appliquer CQRS a un simple CRUD — complexite injustifiee.