Deconstructing the Monolith - Shopify
Feb 21, 2019

Summary
This post details Shopify's transition from a monolithic architecture to a modular monolith. It explains the advantages and disadvantages of monolithic systems, the challenges encountered at scale, and the rationale behind choosing a modular monolith over microservices. The core of the post describes the 'Componentization' project, which involved re-organizing the codebase by real-world concepts and developing tools like Wedge to enforce modularity and isolate dependencies by tracking and preventing violations of domain boundaries and data coupling across components.
More from the Code Modularity and Boundary Enforcement trail
- A Packwerk Retrospective - Shopify
- Focus On Behavior, Not State, for a More Maintainable Codebase - Shopify
- Building a Business System Integration and Automation Platform at Shopify - Shopify
- Shopify-Made Patterns in Our Rails Apps - Shopify
- Remove Circular Dependencies by Using Dependency Injection and the Repository Pattern in Ruby - Shopify