A resequencer can be used to enforce an ordered delivery to the next subsystem. It will hold on to a message till all messages numbered before it have been delivered. For example, if messages have been numbered 1 to 10 and if the message numbered 8 arrives sooner than the messages numbered 1 to 7, it will hold it in temporary storage and will be delivered only when the delivery of messages numbered 1 to 7 is complete. The SEQUENCE_NUMBER
header of the message is used by resequencer to track the sequences. It can be considered as a special case of aggregator, which holds on to the message based on a header value but does not do any processing on the messages:
<int:resequencer input-channel="fetchedFeedChannelForAggregatior" output-channel="cahinedInputFeedChannel" release-strategy="sofeedResCompletionStrategyBean" release-strategy-method="checkCompleteness" correlation-strategy="soFeedResCorrelationStrategyBean" correlation-strategy-method="groupFeedsBasedOnPublishDate...