A pretty “basic” convoy problem, but I wasn’t sure it would work. Now I am.

A business process spits out a variable number of binary files. We need to transport the batch of files together in a convoy. At the end, we need to send a trigger file. We have no interest in parsing the files and correlating on some value (promoted property). The file names are variable, so we can’t correlate on them. In short, we need to correlate on the receive location — and nothing else.

This article by Stephen W. Thomas discusses a similar scenario (batching orders), but he’s correlating on message type, meaning he’s parsing the message. My scenario uses typeless, passthru messages. Would it still work? Yes. Stephen explains why in a flowchart: if a message can join an existing convoy, it will — even if it could also start a new convoy. By correlating on the receive port, all the messages go to the same orchestration. Once the Listen shape times out, we send the trigger file, and we’re done.