Hi,

It took me a while to find the time, but this idea is now logged in
the Camel 3.0 ideas page. We'll spin off a dedicated page as the
definition continues evolving.

BTW - I also added a ToC to the page to simplify browsing.

Regards,

Raúl Kripalani | Apache Camel Committer | Enterprise Architect,
Program Manager, Open Source Integration specialist
http://about.me/raulkripalani | http://www.linkedin.com/in/raulkripalani
http://blog.raulkr.net | twitter: @raulvk

On Tue, Feb 19, 2013 at 9:49 PM, Christian Schneider
<ch...@die-schneider.net> wrote:
> I also thought about a future routing engine some time ago and I think your
> ideas make sense.
> When we remove the possibility of routing steps to simply call processors
> then we have to reflect the possible
> branches in the model itself. So it is pretty natural to introduce something
> like a RoutingDecider.
>
> We have to experiment a bit to see how to implement the different model
> elements camel currently provides
> but generally what you wrote looks good to me.
>
> For the crosscutting concerns I think we could define something like aspects
> that the routing engine then applies at runtime.
> This will make it much simpler and straightforward to implement them
>
> Christian
>
>
> Am 19.02.2013 22:08, schrieb Raul Kripalani:
>>
>> It's a big undertaking but I feel we're at the right moment to redesign
>> the
>> core of Camel, make it leaner and pull in the routing concepts into the
>> API
>> model itself. It's basically now or never.
>>
>> One of the cornerstones of what I have in mind is to diversify the concept
>> of the Processor into its several specialisations, e.g. by introducing the
>> concept of a RoutingDecider, Actions, etc.
>>
>> For instance, EIPs like ChoiceProcessor and FilterProcessors could
>> implement RoutingDecider. Instead of actually invoking the next processor
>> (which is what they do now), they would return it to the Routing Core
>> (RC).
>> The RC would be in charge of actually invoking the processor.
>>
>> LogProcessor, ConvertBodyTo, Delayer, etc. would be Actions: they execute
>> one scoped operation and they return the Exchange to the RC.
>>
>> Cross-cutting concerns like Instrumenting (InstrumentationProcessor), Unit
>> of Work Management, DelegateAsyncProcessor, etc. would belong somehow in
>> the RC itself.
>>
>> Error handlers would just be a referred to, rather than woven at several
>> steps. If a step in the routing chain throws an Exception, the RC would
>> invoke the Error Handling "box".
>>
>> To me, each route would be an instantiation of a RoutingCore, where the
>> direct: endpoint is capable of bridging RoutingCores together.
>>
>> I hope this makes sense to you as much as it does to me ;)
>>
>> Regards,
>>
>> *Raúl Kripalani*
>>
>> Apache Camel Committer
>> Enterprise Architect, Program Manager, Open Source Integration specialist
>> http://about.me/raulkripalani | http://www.linkedin.com/in/raulkripalani
>> http://blog.raulkr.net | twitter: @raulvk <http://twitter.com/raulvk>
>>
>>
>> On Tue, Feb 19, 2013 at 7:34 PM, Hadrian Zbarcea <hzbar...@gmail.com>
>> wrote:
>>
>
> --
>  Christian Schneider
> http://www.liquid-reality.de
>
> Open Source Architect
> Talend Application Integration Division http://www.talend.com
>

Reply via email to