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