anchor.diff:  return beforehand. And the messages that expect a reply, well yeah they
   have to wait anyway. So this can be accomplished like the route below:
   
  +[source,java]
  +------------------------------------------------------------------------------------------------------------------------------
  +// just a unit test but imagine using your own data format that does complex
  +// and CPU heavy processing for decrypting the message
  +DataFormat mySecureDataFormat = new StringDataFormat("iso-8859-1");
  +
  +// list on the JMS queue for new orders
  +from("jms:queue:order")
  +  // do some sanity check validation
  +  .to("bean:validateOrder")
  +  .to("mock:validate")
  +  // use multi threading with a pool size of 20
  +  // turn the route async as some others do not expect a reply
  +  // and a few does then we can use the threads DSL as a turning point
  +  // if the JMS ReplyTo was set then we expect a reply, otherwise not
  +  // use a pool of 20 threads for the point forward
  +  .threads(20)
  +  // do some CPU heavy processing of the message (we simulate and delay just 500 ms)
  +  .unmarshal(mySecureDataFormat)
  +  .delay(500)
  +  .to("bean:handleOrder")
  +  .to("mock:order");
  +------------------------------------------------------------------------------------------------------------------------------
  +
   WARNING: *Transactions and threads DSL*
   Mind that when using transactions its often required that the
   Exchange is processed entirely in the same thread,
  
positive.code: `org.apache.camel.spi.Synchronization` API provides fine grained methods
  for `onCompletion` and `onFailure` for the two situations.
  
  And then we have the client API where we call the <<http-component,HTTP>>
  service using `asyncCallback` 3 times with different input. As the
  invocation is Async the client will send 3 requests
  right after each other, so we have 3 concurrent exchanges in progress.
  The response is gathered by our callback so we do not have to care how
  to get the response.
  
  [[Async-UsingtheAPIwiththeCamelclassicAPI]]
  Using the Async API with the Camel classic API
  
negative.code: 
  First we define a route in Camel for the <<http-component,HTTP>> service
  where we simulate a slow server as it takes at least 1 second to reply.
  
  [source,java]
  ---------------------------------------------------------------------------
  // The mocks are here for unit test
  // Simulate a slow http service (delaying a bit) we want to invoke async
  from("jetty:http://0.0.0.0:" + getPort() + "/myservice")
    .delay(300)
    .transform(body().prepend("Hello "))
    .to("mock:result");
  ---------------------------------------------------------------------------
  
  Then we define our callback where we gather the responses. As this is
  based on an unit test it just gathers the responses in a list. This is a
  