I have a question, i have a big program to code, its a issue tracking +
time tracking + alot of others tracking that my client needs, the
question:
- make a big rails application
- split the application into smaller applications with the same
database
- split the application and the database
The client want to offer the full app (issue, time,...) and want to
offer separated parts of the program too like the issue tracking, time
tracking,...
The data from modules are very integrated, ex, in a issue, i need know
the time spent on it and know the files attached to it, 3 diff apps
here.
ps: im coding in rails, but dont mean that i need do it in rails, can be
other framework if would be more easy like merb, ramaze,...
Personally I prefer small applications with separate databases. Easier to maintain, easier to scale one part of the app without doing the same to others etc... Exactly how practical that is can depend on the degree of interapplication communication you need. Things like ActiveMessaging or just an internal API which the apps use to request data off each other can be useful
Unless you are insanely huge, one app will always be faster. This is
because there is no translation to get the other resources.
Plus, if you do one big app for the customer, then integration between
the parts is a snap, with a decent database (say Postgres) even if
your app gets big you can partition tables and do all sorts of things
to scale.
Multiple small apps increase your complexity, and if it is just you
designing, then you probably want to go the one app route.