Rails Architecture,big app or multiple small app

Hi guys :slight_smile:

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,…

Thanks :wink:

On 11 Sep 2008, at 16:52, Diego B. wrote:

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.

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

Fred

what is the difference of activeresource and this activemessaging? i
dont know activemessaging…

have any pros comparing with activeresource?

thanks again :slight_smile:

On Fri, Sep 12, 2008 at 7:14 AM, Diego B.
[email protected] wrote:

what is the difference of activeresource and this activemessaging? i
dont know activemessaging…
have any pros comparing with activeresource?

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.

Mikel