Jul 9th, 2008, 03:49 PM
Asynchronous Transitive Processes
I would like to implement a process using Spring Integration where Component A (Ca) and Component B (Cb) publish messages to Component C (Cc) who delegates processing to Component D (Cd):
Sorry for the above cheap drawing... :.)
..........Cc -> Cd
All components must process in an asynchronous way, and all request must be replied to, no thread must block. Basically Cd will reply to Cc which will reply to Ca or Cb depending on where the request was originally coming from. The point is to design a high throughput application.
I assume that my request has to be cached at each component until the reply returns and gets correlated against the original request.
Since the reply address is dynamic and depends on information contained in the message, it cannot be defined as a component's static channel.
How can I invoke dynamically a channel?
So, (sorry for my complex setup... :.) How should I go about, using Spring Integration, to do the above! :.)
How can I receive a Message at an Endpoint given a certain payload type without loosing the Message? Currently all examples I have seen show how easy it is to get the payload but they don't show how to also keep the Message so that we can corrolate a future asynchronous response!
Given my problem what would you recommend to address such an issue?
Any code sample would be greatly appreciated.