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.