On an ESB like Apache Camel, what mechanism is actually "marching" (pulling/pushing) messages along the routes from endpoint to endpoint?
Does the Camel RouteBuilder
just compose a graph of Endpoints
and Routes
and know which destination/next Endpoint
to pass a message to after it visits a certain Endpoint
or do the Endpoints
themselves know which is the next destination for the message it has processed.
Either way, I'm confused:
- If it is the
RouteBuilder
that knows the "flow" of messages through the system, then thisRouteBuilder
would need to know the business logic of when toEndpoint A
should pass the message next toEndpoint B
vsEndpoint C
, but in all the Camel examples I see this business logic doesn't exist; and - It seems to be that putting that kind of "flow" business logic in the
Endpoints
themselves couples them together and defeats some of the basic principles of SOA/ESB/EIP, etc.