Hi James ! Thanks for spending time in helping me out ! Okay, about the completion predicate, is that a custom Predicate I have to code or is it a built-in function ? Anyway, I guess that solves one of my problem
When you say there's no concurrency in my system, that's not exactly true. I may have some but I doesn't matter : my system has to be able to receive messages when they come, whereas it's in a sequential or parallel way. Also, there's no pre-defined order or some pre-sorting : I just have to react when a message arrives ! It is my mistake that I took the "order" example : I wanted a simple example for you guys to be able to figure out what I'm talking about. But my system has nothing to do with that example. In fact, I'm gonna detail my need to be sure we're dealing with the same thing. My process is a daily process, it means that everyday, a brand new process is started and at the end of the day, it's normally closed. It's composed of 15 steps, that are sequentially executed. Say that Step1 is started in the morning and when it's complete, it sends a message to starts Step2 and so on, until Step15 is over in its turn, at then end of the day. Step1 is as follow : It's complete when it has received MSG1, MSG2 & MSG3. MSG1 is sent when MSGA & MSGB have been received by a subprocess. Same principle for MSG2 & MSG3. I hope you're still with me at this point ... Explained another way : SubProcess receives MSGA or MSGB (the order does not matter) and then receives the other one. That triggers the sending of MSG1 which is expected by Step1. But Step1 could have first received MSG2 or MSG3 : the only thing that matters is that Step1 ends when it's got all the required messages. (and it could receive several times the same message, as long as the sequence is not over). That's why I was interested in the Aggregator pattern because it is the only one which describes the reception of several messages to be able to proceed further. But I do NOT need to aggregate them. It's a simple event management : when MSG1 & MSG2 are received, MSG3 is sent (and has nothing to do with MSG1 & MSG2 bodies). Ex : US_Done & Canada_Done => North_America_Done You talked about a the filter pattern, it could be interesting but I don't see how to use it in my case. How to define a route that has three filters and that knows when the three filters have been successfully triggered ? I'm kinda WLI blinded : I'm just trying to get away from that way of seeing things, but it's pretty hard. Hope I was clear enough (sometimes, it is for me but unfortunately not for the others ) Don't hesitate to question me if you need me to explain further or differently. Again, thanks for your time and for your quick answers ! Regards, Maxence. -- View this message in context: http://camel.465427.n5.nabble.com/EIP-Can-you-please-help-me-choose-a-correct-design-pattern-tp3412244p3413935.html Sent from the Camel - Users mailing list archive at Nabble.com.
