Pourquoi avoir choisi d’utiliser l’architecture CQRS ?

Vincent Oliveira
Tiller
Published in
4 min readJan 13, 2017

--

Tiller

Tiller est une solution de caisse enregistreuse intelligente au service des restaurateurs et commerçants. L’objectif est d’aider les restaurateurs et commerçants à optimiser leur business en analysant les données de ventes sur une plateforme web de gestion.

Le backend de l’application est historiquement développé en PHP avec le framework Symfony. La croissance de Tiller nous a donc amenés à repenser notre plateforme pour répondre à 2 objectifs :

  • Supporter une croissance de plus de 2000 clients et de plus de 20 millions de requêtes par jour,
  • S’assurer de la fiabilité de nos données : nous ne pouvons pas nous permettre de perdre la moindre transaction.

C’est dans ce but que nous avons réécrit une partie de notre plateforme (en particulier la partie synchronisation des transactions) en utilisant l’architecture CQRS.

CQRS ?

Le CQRS (Command and Query Responsibility Segregation) est une architecture qui permet de séparer la lecture (Query) de l’écriture (Command). La partie écriture enregistre chaque modification, généralement sous forme d’évènement. Un traitement est ensuite opéré, souvent en asynchrone, afin de générer des modèles dénormalisés. La partie lecture requête simplement ces modèles afin de minimiser le requêtage de la base.

--

--

Vincent Oliveira
Tiller
Editor for

Writing about Leadership and Startup. | CEO & Co-founder @ Webyn.ai | Former CTO & Co-founder @ Tiller (acquired by SumUp)