Quite a few people have asked “What are sequental convoys?” and “When should I use them?”. So here is the definition and a quick example on when and/or how I would use them.
“A sequential convoy enables multiple single messages to join together to achieve a required result. A sequential convoy is a set of related messages that have a predefined order. Although the messages do not have to be exactly the same, BizTalk Server must receive them in a sequential order.” * Microsoft definition
Where this becomes handy in business is around batching of messages, an example of this would be when a business process requires batch processing that needs to retain the order in which the message was received. The way this is accomplished is to put a Listen shape within a delay, which the delay the loop ends. During this delay time any number of received messages can enter the same business process. This approach can have a side effect of Zombie messages, but we will look at those in a future post.
In our book, we discuss a pharmaceutical ESB system and we have a process that batches order messages from vendors until 2pm, then sends order processing and shipping. In this process we show the use of sequential convoys as well as look into the side effects of this process.