Tuesday, 13 January 2009

More on Database Thawing

I just saw this blog post in rebuttal to Martin Fowler's DatabaseThaw article. It's a typically well-thought out response from Typical Programmer. The short summary is that he rejects Fowler's criticism of using RDB's as the mechanism for application integration. (And don't dismiss him as simply a RDB bigot - he's not shy about nailing relational gurus, as in Relational Database Experts Jump The MapReduce Shark).

TP's arguments ring true to me, although in my experience it takes a very concientious DB shop to fully maintain the "encapsulation of data and operations" across many applications, many custodians, and many developers.

It would be great if Fowler's vision of the integration point being HTTP rather than SQL solved all our problems. Loose coupling is a wonderful thing to have. But so far I'm not seeing how this provides equivalent performance for all cases, and how it avoids the problem of data model mismatch.


sgillies said...

Well, it's really the vision of Berners-Lee and Fielding, right? As I'm about to point out again in my own blog, integration on the web (web as "service bus" as Fowler is wont to say lately) trades performance for resiliency, evolvability, and longevity. Maybe the trade off isn't acknowledged as well or as often as it should be.

Dr JTS said...

Yep, I guess so.

I see the vision, but I'm not convinced that "the web" is a free lunch for building robust, performant, consistent computer systems. It gives us a lot more options for IPC protocols and ways to represent data - but you still gotta build systems which meet the service level requirements that you want to realize.

I'm all over the sexy glossy marketing materials for Web X.0 - but I do find that there's an awful lot of "exercise left for the student" when it comes time to take advantage of all this goodness in my own projects.