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.
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.
Tout est dans le titre
Tout est presque dans le titre... Ça peut être intéressant