Topic: Strategy to modularize application into parts (engines, gem?)
I had a question that I wasn't sure where to start with. I'm developing a large application that has several related parts. The application is a platform for writing, editing, and reading articles and consists of three parts, which (I believe should) share one database.
1. Writing platform allows authors to write, save, etc articles.
2. Editing platform allows editors to review the authors' work and approve / revise
3. Reading platform allows readers to read the work that has been written and approved
We're looking for a sustainable and scalable way to develop this modularly. Currently, we are struggling with how to best accomplish this. We have all three apps running independently now (as proofs-of-concept), but in order to make it all work together, there will be shared models, data, etc.
What is the best way to go about this? Should we develop a gem that holds all the shared models? Write the three apps as engines in a larger app? Use git submodules?
Thanks for your help!