What’s in a conversation?

As the planning for the Intuit Partner Platform proceeds, the topic of a long-lived transaction popped up. A long-lived transaction, or a conversation is asynchronous by its very nature. Other properties of a conversation is that data flows across multiple organizational boundaries in the same cloud or different clouds. Do we absolutely need to have the ACID properties of a typical transaction associated with it?

Gregor Hohpe of Google has written in a very succinct manner about why Starbucks does not use Two-phase commit. The asynchronous fashion of coffee ordering and delivery could be solved by a correlation identifier which is roughly the name of the customer and the drink scribbled on the coffee cup. Since I am not a big fan of Starbucks, don’t understand why anyone has to pay a fortune for a cup of so-so coffee and most importantly don’t like to pay for wi-fi, I’ll take this metaphor to Panera Bread. When the customer places the order, (s)he  is handed a token which vibrates and lights up when the order is ready. Out-of-order delivery is almost the rule than the exception, but, the “take order and deliver” conversation with the customer is complete when (s)he picks up the order and places the lighted token in the bin. It is by no means a perfect protocol and depending on the speed and scheduling of the workers, it’s likely that a similar order placed ahead of another order might be delivered later than the order which was placed later. But, does it matter as long as the customer is sitting for a few extra minutes next to a cozy fireplace and enjoying a drink? The article also talks about compensating transactions to deal with some of the issues. However, the main goal of maximing throughput without compromising customer satisfaction entirely seems to be achieved. This form of a conversation is probably acceptable for ordering coffee or small ticket items.

Can a similar conversation be applied when a customer is buying a car? There a various regulatory requirements that need to be complied with during the process of “take order and deliver”. For example, unless a valid driving license is produced, customer may not be able to take vehicle for a test drive and obviously until there is a valid proof of auto insurance, the vehicle cannot be driven out of the dealers lot. There are still some optimizations that could be made — the credit check, application and approval for an auto loan could happen whilst he customer is doing the test drive or is doing the price negotiations.

How could you capture the true essense of a conversation on the cloud? The Web Services Choreography Description Language (WS-CDL), the Web Services Business Process Execution Language(WS-BPEL) and Web Services Transactions (WS-Transactions) can all be used to capture the context of a conversation or depending on the the nature of the conversation you could prefer to go the Starbucks or the Panera way.

What’s your definition of a conversation?



  1. I think you question “How could you capture the true essense of a conversation on the cloud? ” is well founded. The key is to be able to describe a conversation and the state management required across it in an architecturally neutral way. WS-CDL is certainly one place to start but it lacks the bi-simularity of different patterns (e.g. is conversation A the same as conversation B even though A and B have different topologies). A WS-CDL that supports such a notion would be a great way to describe conversations.

    WS-BPEL, whilst good at what it does, does not do conversation descriptions very well as in forces early technology decisions upon you. However some bi-simularity between description and execution provides a safe way to ensure the conversation play out well.

    The notion of Service Grids – which really is cloud – based on WS-CDL has been around for a while. Certainly there is research and presentation material associated with in in the GGF.

  2. Excellent site, keep up the good work

Comments RSS TrackBack Identifier URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s