Shopify gère 30 To de données par minute pendant des événements comme le Black Friday, tout en maintenant une architecture "monolithique modulaire" et scalable. Leur secret ? Une approche disciplinée basée sur un monolithe modulaire en Ruby on Rails, organisé en "quartiers" logiques (checkout, paiements, commandes, etc.), chacun avec sa propre équipe et ses responsabilités claires. Ils utilisent l’architecture hexagonale (Ports and Adapters) pour isoler la logique métier des dépendances externes, et des Pods (clusters isolés) pour répartir la charge et limiter les pannes. Leur pipeline de données repose sur Debezium + Kafka pour du traitement en temps réel, tandis que MySQL, optimisé avec des centaines de shards et un équilibrage dynamique, supporte 10 millions de requêtes par seconde. Grâce à des outils internes comme Packwerk (pour la modularité) et Sorting Hat (pour le routage intelligent), Shopify prouve qu’un monolithe bien conçu peut rivaliser avec des architectures microservices, même à l’échelle mondiale — tout en restant simple, fiable et "ennuyeusement" efficace. Une leçon de sobriété technique à l’ère de l’hyperscale.
Le débat entre monolithe et microservices évolue vers un équilibre pragmatique : la simplicité, l’expérience développeur et la maintenabilité deviennent prioritaires. Les entreprises, après avoir expérimenté les coûts élevés et la complexité des microservices, se tournent de plus en plus vers des architectures modulaires ou des monolithes bien structurés, comme en témoignent des exemples comme Amazon Prime Video, qui a réduit ses coûts de 90 % en revenant à une approche monolithique. La culture du "vibecoding" (optimisation du bien-être et de la productivité des développeurs) favorise aussi les monorepos et les architectures centralisées, tout en intégrant des outils modernes pour garder une flexibilité. L’enjeu n’est plus de choisir un camp, mais d’adapter l’architecture au contexte, en privilégiant la clarté, la résilience et l’alignement d’équipe, avec la possibilité de basculer entre les deux approches selon les besoins. Les outils comme Terraform, les devcontainers ou les CI/CD avancées permettent désormais de repenser les choix architecturaux avec plus d’intention et moins de dogmatisme.
L'article détaille la stack technique de Shopify, révélant comment la plateforme gère une échelle massive avec une architecture qui semble simple en surface, mais qui est en réalité le résultat de décisions architecturales astucieuses et de nombreuses années de refactoring. Shopify utilise principalement Ruby on Rails pour son backend, avec des investissements significatifs dans des outils comme YJIT et Sorbet pour améliorer les performances et la sécurité du typage. Le frontend est principalement construit avec React et TypeScript, tandis que React Native est utilisé pour le développement mobile. Shopify s'appuie sur MySQL pour sa base de données principale, avec des stratégies de sharding et de pods pour assurer l'isolation et la scalabilité. Kafka est utilisé pour la messagerie et la distribution d'événements, tandis que des outils comme Memcached et Redis sont utilisés pour le caching et la gestion des files d'attente. L'infrastructure ML de Shopify utilise des embeddings pour la recherche en temps réel et des pipelines de données basés sur Apache Beam. La plateforme est déployée sur Kubernetes, avec des processus CI/CD robustes et des outils d'observabilité pour assurer la fiabilité et la sécurité. Shopify traite des milliards de requêtes par jour, démontrant l'efficacité de sa pile technologique à grande échelle.
L'article explique ce qu'est un monolithe modulaire et quand il doit être préféré à une architecture de microservices.
Tout est dans le titre
Tout est dans le titre