Articles and resources
If you only have a little bit of time check out this RailsConf 2017: Built to last: A domain-driven approach to beautiful systems by Andrew Hao
Some more articles that explain and give on how to split your monolith.
Root
A good guide on how to extract your monolith.
- The Modular Monolith: Rails Architecture is a good primer to get started also check out the Podcast - 2018
Shopify
Breaks up the monolith into components. Uses a package system thats close to engines. Has a custom build tool called Wedge that allows engineers to track the extraction progress.
- Deconstructing the Monolith: Designing Software that Maximizes Developer Productivity and the Video
- Nursing code back to good health. Finding high churn, low coupled high cohesive code paths.
Gitlab
Gitlab has good documentation on this topic
Gusto
Gusto seems to go down the engine approach too.
- Laying the Cultural and Technical Foundation for Big Rails
- Taming Large Rails Applications with Private ActiveRecord Models - A way to migrate towards a repository pattern.
- How to Break Apart a Rails Monolith
- 3 Best Practices for Rails Engines
- Building Towards a modular Monolith
Flexport
Flexport uses engines to breakup the monolith. Communication between engines happens with a pubsub. They enforce the boundaries via custom ruby cops. Models are encouraged to be dry structs. Harbours around 40 Rails engines.
- Isolating Rails Engines with RuboCop to enforce boundaries. - 2019
Taskrabbit
Netflix
- Ready for changes with Hexagonal Architecture and the video. Netflix goes all the way with a hexagonal architecture.
Appsignal
Other articles
- A Guide to Rails Engines in the Wild: Real World Examples of Rails Engines in Action
- Component-Based Rails Applications has a lot of information breaking up the components in Rails.
- Between monoliths and microservices a RailsConf 2020 talk from Evil Martians, covering cross engine communication, testing and dependency management. Also Engems and the slides. Tackles testing, communication and general splitting of engines.
Video
- Bring clarity to your monolith with Bounded Contexts and the video RailsConf 2017: Built to last: A domain-driven approach to beautiful systems by Andrew Hao
- GOTO 2018 • Modular Monoliths • Simon Brown (Presentation). More about modular monoliths and not really connected specifically targetted towards Rails.