Loose Coupling

, Jan 12, 2004

Patrick Logan points to an interesting post from Carlos Perez which contains this fragment:

In general, a relational database provides a fixed, queried, self-describing, lazy evaluated system that is inherently loosely coupled. It’s surprising that it’s perceived to be more tightly coupled than a component based system.

One can certainly build very loosely coupled systems by using an RDBMS as the shared storage area. The problem is that this will only work if the systems and the common schema they share have been designed for this purpose. For example, it would be pretty easy to connect a whole bunch of systems to an RDBMS and use some TupleSpace-like stored procedure API. What you need to make sure, though, is that you don’t use the data-oriented integration strategy that has currently become so popular as an excuse to expose your implementation details, of which the RDBMS schema — at least in the most of the cases — clearly is one.