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.

Messaging vs. RPC

Stefan Tilkov,

Nothing like a nice pissing contest: Rich Turner and John Cavnar-Johnson go back and forth about how to do distributed programming the right way. The starting point was Rich’s whitepaper on Developing Distributed Services Today, to which John posted a somewhat less than favorable comment. Rich responded (a little childishly, IMO, even in the edited version); John followed up again.

The central issue is whether or not an RPC-style programming model is a good choice for building modern distributed systems (I agree with John that it’s not.) Not being an Indigo/WCF programmer, I was a little puzzled by this paragraph, though:

At the heart of the internal model of Indigo is a very powerful concept of a message. Unfortunately, this conceptual model is never exposed to developers and architects directly. You can only manipulate it indirectly, either through low-level XML processing or by applying a set of opaque attributes to a .NET type.

From this old post of Don Box, I understood that the ProcessMessage API was exactly what John is looking for — an API that gives you direct access to the message, without any method dispatch or O/X mapping going on. Can any reader knowledgeable in .NET maybe enlighten me? (Do I actually have .NET-aware readers? :-) )

On September 12, 2005 7:36 AM, Savas Parastatidis said:

Yeah, I was surprised by that statement too. Indigo does provide a message-oriented API and it’s my understanding that the next beta 2.0 will make it even more easier to access a message’s XML. I just didn’t want to comment on this RPC vs messages exchange whilst my mind was in my move to Seattle. I agree with you of course… RPC is sooooo 90s.