Gregor's Ramblings
Home Patterns Ramblings Articles Talks Download Links Books Contact

Eric Newcomer is on to me

May 26, 2007

Recent Ramblings
Explaining Stuff
DDD - Diagram Driven Design
What Does It Mean to Use Messaging?
A Chapter a Day...
EIP Visions
Clouds and Integration Patterns at JavaOne
My First Google Wave Robot
Google I/O
Into the Clouds on New Acid
Design Patterns: More than meets the eye
Reflecting on Enterprise Integration Patterns
Google Gears Live From Japan
Double-Dipping: OOPSLA and Colorado Software Summit
Bubble 2.0
Enterprise Mashup Summit
Facebook Developer Garage
Mashups Tools Market
Mashups == EAI 2.0?
Mashup Camp

My most popular rambling Starbucks Does Not Use Two-phase Commit has been around for a good two years now and was even featured in Joel Spolsky's "Best Software Writing". So I should consider myself lucky that I escaped Eric Newcomer's scrutiny for so long. Eric is the long-time CTO of IONA, a company most of us value for being a bunch of really smart and nice people. In fact, they just gobbled up James Strachan with LogicBlaze and John Davies with C24. I wonder how I was able to could miss starting a company and have it be acquired. Oh well. At least Google hired me :-)

Eric is well known and respected for co-authoring the highly recommended Principles of Transaction Processing amongst many other things. So you want to tread lightly with statements about transactions and two-phase-commit when you are around Eric because chances are he knows more about the topic than you do. So it was simply a matter of time until my tongue-in-cheek statements about the relationship between coffee and distributed transactions caught Eric's attention. I am a little embarrassed that so many people (including Eric) watched my Developing in a Service-oriented World talk on InfoQ. But I guess eyeballs still count. Come on, click on one of those Google ads, help me pay for new gadgets^H^H^H^Hmaintaining this site! ;-)

But back to Eric. Interestingly Eric and I share a lot of the common interests but I don't think we ever formally met. I was back at the MVP meeting this year but somehow failed to run into him. Hopefully I get a chance to chat with him next time. Anyway, Eric pointed out that Starbucks does in fact use transactions for some parts of its business operations, such as recording the payment, if simply by virtue of using a (transactional) relational database. I think Eric and I both agree that distributed transactions have their pros and cons and we have to think about when to use them and when we can come up with alternate solutions. The Starbucks story was primarily aimed at those folks who claim that nothing can be done unless we have distributed transactions. So I wanted to highlight that real life can well happen without 2PC, while taking some literary license and with my tongue firmly planted in my cheek. Naturally, real life also uses 2PC. For example, the whole point of an escrow company during the purchase of a home is to ensure transactional integrity. I think living with uncertainty is a key theme of SOA (as well as asynchronous messaging) and we developers who love the command-and-control predictability of call stacks and ACID transactions better get used to it.

I think Eric and I also have a very similar view on WS-CDL. CDL has conceptual appeal, but it has not seen very much uptake. I think the reason is partly political (for example, the big guns have lots of $$$ invested in BPEL) and partly because CDL is a conceptually heavyweight topic. I talked about this a little bit in my article in IEEE Internet Computing

I think transactions in large and distributed systems are likely to remain an active topic for some time to come. For example, Martin Fowler just recently wrote about being transactionless. Also, Pat Helland's post on SOA and relativity relates very much to transactions and transactional scope in distributed systems.

In any case I hope to get a chance to chat more with Eric about SOA and transactions. And I'll be happy to buy him a coffee and observe whether the coffee shop does use transactions or not :-)


Gregor is a software architect with Google. He is a frequent speaker on asynchronous messaging and service-oriented architectures and co-authored Enterprise Integration Patterns (Addison-Wesley). His mission is to make integration and distributed system development easier by harvesting common patterns and best practices from many different technologies.