I may be wrong but in the message flow diagram above, shouldnt the incoming data represented as a byte stream rather than representing it as a Message. Some may take it to be the Message object. Since the byte stream to Message object transformation happens only inside the service host(taken care by the message encoder) it would be appropriate to represent the incoming data as byte stream over the wire.