We are in the processing of building a new version of our application from the ground up. Our current Rails application, which has been in production for 5 years and has 100 models. I am considering ways to simplify the codebase for the next version.
I can see Reporting Features and Admin Features being broken out. Most everything in the application in Product-based though. Even breaking out the Reporting, I would have to duplicate models, which is obviously not suboptimal.
I am aware of Rails Engines, I am just not certain if that feature is as robust as it should be. Another concern is designing this application based on Rails 3.2 when Rails 4 is already in beta.
I’m not looking for this to be an opinion piece, I was just curious to see if there was a convention for breaking out modules vs. building an all-encompassing application. The convention either exists in the community or it doesn’t. Thanks for any guidance you can offer.
The convention is generally:
Extracting to either engines or to services (service-oriented-architecture) is a decision for your scalability requirements.