now we should routing asynchronously to not block while waiting for the reply
TODO:
we need a thread pool to use for continue routing messages, just like a seda consumer
and we need options to configure it as well so you can indicate how many threads to use
TODO: Also consider requestTimeout