Messaging Patterns | |
HOME PATTERNS RAMBLINGS ARTICLES TALKS DOWNLOAD BOOKS CONTACT |
A Message Router can route messages from one channel to different channels based on message content or other criteria. Because individual messages may follow different routes, some messages are likely to pass through the processing steps sooner than others, resulting in the messages getting out of order. However, some subsequent processing steps do require in-sequence processing of messages, for example to maintain referential integrity. How can we get a stream of related but out-of-sequence messages back into the correct order? Use a stateful filter, a Resequencer, to collect and re-order messages so that they can be published to the output channel in a specified order. The Resequencer can receive a stream of messages that may not arrive in order. The Resequencer contains in internal buffer to store out-of-sequence messages until a complete sequence is obtained. The in-sequence messages are then published to the output channel. It is important that the output channel is order-preserving so messages are guaranteed to arrive in order at the next component. Like most other routers, a Resequencer usually does not modify the message contents. ...Related patterns: Aggregator, Competing Consumers, Message Router, Message Sequence, Pipes and Filters, Splitter, Test Message Want to keep up-to-date? Follow My Blog. Want to read more in depth? Check out My Articles. Want to see me live? See where I am speaking next.
|
© 2003, 2019 • Bobby Woolf • All rights reserved. |