camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maxence Button <maxence.but...@gmail.com>
Subject Re: [EIP] Can you please help me choose a correct design pattern ?
Date Tue, 08 Mar 2011 13:40:47 GMT
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.

Mime
View raw message