The Convoy Deep Dive white paper and sample code is now available on MSDN.  You can read the paper on-line and download the sample code here.

For anyone who read the “beta” version of the paper, Scenario 2 went through a minor change.  I now use an atomic scope to build the output message rather then a simple string concatenation.  This eliminates messages collecting inside the message box in the “Delivered, not consumed” status. 

It seems that the status of a message is not updated until a persistence point is reached or the Orchestration dehydrates.  I would guess this is the case with any messages that are used inside an Orchestration and not just inside a looping-receive Convoy.  But, I have not verified this.

Overall, this change provides a better solution since the Orchestration state is being saved when each new message arrives and can be easily be restated/recovered in the event of a system failure.