Hello team,

We use a recursive model in our routing engine to chain processors with one
another to process exchanges.

This results in lengthy stacktraces and increased memory usage due to local
variable retention for longer than strictly needed, IMHO. This recent
question on Stack Overflow is a typical (short!) stacktrace:
http://stackoverflow.com/questions/14734983/camel-ftp-intermittent-issue.
Debugging
it can be daunting for users.

Moreover many infrastructural Processors are woven implicitly along the
processor chain. Maybe this logic should belong elsewhere (the routing core
itself?).

Now that the Camel routing model is consolidated, can we start thinking
about moving towards an iterative routing approach? I feel the recursive
approach worked wonders when Camel was still a baby and the architecture
was heavily evolving: basically any processor, at any point, could do
anything to the exchange. And everything was a processor. Flexible and
versatile!

But now that the concepts are well rooted, I feel we need to formally
define "the routing process", rather than leaving it all up to processors
to be assembled in the right order.

I realize my proposal may sound somewhat abstract at this point, but before
going to further length, I want to gauge if my concern is shared.

What do you think?

Raúl.

Reply via email to