Under Deconstruction: The State of Shopify’s Monolith - Shopify
Sep 16, 2020

Summary
This post details the evolution of Shopify's efforts to modularize its Rails monolith, focusing on the development and impact of Packwerk. It highlights the challenges of managing a large codebase, the importance of understanding developer behavior (using Fogg's Behavior Model), fostering grassroots adoption through initiatives like the Architecture Guild, and the need for holistic architectural thinking. The post emphasizes the shift from strict rules to enabling developers by increasing their ability to make positive changes, particularly around restricting Active Record model access to owned components. It also discusses the challenges of dense dependency graphs and circular dependencies.
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