This example shows how to insert intermediate gateways into a flow, in order to provide a "try/catch"-like block around parts of the flow.
This is necessary when using multi-threaded aggregation with a gateway, so the result (including errors) is returned properly to the original inbound gateway.
It is important to understand that the actual services (and the error transformer) do not send their output to the aggregator directly; by omitting the output-channel, the result (or error) is returned to the intermediate gateway and thence to the aggregator.
EDIT: Added specific tests for one or both messages failing; added a resequencer so the tests are deteministic.