This is a single archived entry from Stefan Tilkov’s blog. For more up-to-date content, check out my author page at INNOQ, which has more information about me and also contains a list of published talks, podcasts, and articles. Or you can check out the full archive.

Loose Coupling

Stefan Tilkov,

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.