This message was imported from the Ruby/Rails Modularity Slack server. Find more info in the import thread.
Message originally sent by slack user U782WI24OVK
I’d like to surface <@U78HE411QT1>’s question here and expand a bit:
Are there some seminal write-ups you’d recommend on when it makes sense to start breaking down the monolith?
In my own experience, it starts making sense when a monolith as grown to a point where:
- Running the entire test suite is so slow that degrades productivity.
- Making a change in one place breaks other places that aren’t supposed to be related.
- Development teams stumble upon each other while code reviewing or merging PRs.
- Lack of enforced boundaries leads to cognitive overload across the entire monolith.
Two articles that go deeper on these topics and explain it very well are:
- https://shopify.engineering/deconstructing-monolith-designing-software-maximizes-developer-productivity
- https://shopify.engineering/shopify-monolith
I’d love to hear other companies thoughts on this