title: Does the JMS API support asynchronous bidirectional messaging?
body: <p>The examples I have seen seem to support several use cases:</p>
  
  <ol>
  <li>Point to point - single publisher to single consumer, unidirectional communication from publisher to consumer</li>
  <li>Publish/subscribe - publisher to multiple consumers, unidirectional communication from publisher to consumer</li>
  <li>Request/response - single publisher to single consumer, bidirectional communication but blocking</li>
  </ol>
  
  <p>What I'm looking for is bidirectional asynchronous messaging. For example I would like to do the following</p>
  
  <pre><code>Publisher: "Hello world" to consumer
  Consumer: Process "Hello world"
  
  Wait 5 minutes
  
  Consumer: "Hello publisher" to publisher
  Publisher: Process "Hello publisher"
  </code></pre>
  
  <p>Does the API support the above use case? Or would I need to implement everything as publisher and consumer concurrently?</p>