Hello,
I was wondering about database/model sharing between applications. In
the
previous company I worked, my boss thought that the best way to build a
strong application infra-structure (kind of SOA-based) was to have ONE
BIG
shared database between the various applications. Since the company
works
with a certain business domain, these applications would all solve
problems
related to this business domain too, and the database, in theory, would
scale up to be the perfect KB for the company, and, also in theory,
things
could be made very DRY.
These application would all be all web-based. And at the time, they were
thinking on using Java (migrating from desktop Delphi to Java/Web).
In the beginning I liked the approach. The idea of having one big
database
back-end able to serve any application, was the truly integration
heaven.
Entitites wouldn’t be tied to applications, but instead, be implemented
as
middleware models, using Spring.
Java is nice, but not very agile. Also, after applying some agile
thoughts
in this idea, I started to see that it was not very agile at all, and
not
really suitable to do with Rails (at least not after putting a lot of
time
thinking about how to do it without messing things).
I can see where this would have potential though. Imagine two similar
applications that, in its objects model, both have an Event model. I can
see
both of these applications using the same database, sharing Events data.
Also, the model could be shared between applications via plugins, and
additional logic put as needed.
However, I think that it is more trouble that its worth, in the end.
Maybe
being a little wet, creating two databases, and sharing via websevices
as
needed would be a more pragmatic approach.
What do you think? Did you have a similar experience?