Hello.  I introduced a Dynamic Router EIP component in 3.15 because I had
uses for a dynamic router that was a bit different than what the core
component offers.  I would like some feedback about what features to
potentially add that would make it even more useful.  First, just in case
you are not familiar with its capabilities, I will describe how I am using
it in a software system that I am building at work, which exercises it
fairly well.  We have a little fewer than 10 spring boot modules that
handle specific tasks of the system.  One of the modules is a "routing
engine" that is mostly a wrapper for Camel, along with some
business-logic-specific integration code.  This is where I instantiate the
Dynamic Router component, and create a JMS route that can feed it
subscriber messages.  The other modules register their subscriptions with
the dynamic router by sending messages over JMS to the router.  These
messages contain a predicate that allows the dynamic router to evaluate
messages that pass through it to determine one, or more, recipients.  With
their subscription messages, they also include a destination URI for
applicable messages to be routed to.  This allows for a somewhat advanced
version of the command pattern in my system.

Can any of you think of what this is missing?  My first implementation used
a list for keeping track of subscribers, but that allowed a module to
register its commands multiple times.  So, that has been changed to a map
that maps by subscriber ID.  The other thing, and I have not developed a
solution for this, but in the event of an error, the "routing table" of
routes and endpoints is not available that I know of.  I am not sure how to
handle that, or if there is something built into Camel that might
facilitate that type of tracing/debugging information, of it I might need
to keep track of it in a table within the component.

Anyway, this is already long enough, and I don't want to bore you with too
many details.  If you have time, please provide some feedback, and I will
get more features into the Dynamic Router EIP.

Thanks,
Steve

Reply via email to