Rails applications tend to turn into giant monoliths. Keeping the codebase maintainable usually requires architectural changes. Microservices? A distributed monolith is still a monolith. What about breaking the code into pieces and rebuild a monolithic puzzle out of them? Between monoliths and microservices, there is another option: component-based, or modular, architecture.
In Rails, we have the right tool for the job: engines. With engines, you can break your application into components—the same way as Rails combines all its parts, which are engines, too.
The Engems project aims to help you in adopting Rails Engines as building blocks for your application.