title: zeromq message pattern for many to many request/reply
body: <p>I'm very new to ZeroMQ.  I've read the guide and am currently going through the examples as well as looking at other relevant info around the web.  I'm having some indecision with what message pattern(s) to use or if I should use a combination of 2 patterns.</p>
  
  <p>I have an existing software application that has a home grown messaging system that is in need of replacement.  I have a fairly simple architecture:</p>
  
  <pre><code>|Client|&lt;-----&gt;|driver1|
             |
             |---|driverN|
  </code></pre>
  
  <p>Only one "client" connects to a driver at a time currently, and there may be many drivers.</p>
  
  <p>(in actuality, the client, in this case, isn't truly my client application, but a middleman of sorts.  For this discussion, it can be treated as a client)</p>
  
  <p>Messaging:</p>
  
  <ol>
  <li>The client issues commands to the driver.  </li>
  <li>The drivers return status/state information in response to commands.</li>
  <li>The drivers produce data elements (i.e. Not status/state information)</li>
  <li>Some Client messages go to all connected devices, some are directed only to a single driver.</li>
  </ol>
  
  <p>Drivers may exist on the same system or remotely on a LAN.  This is not a public network.</p>
  
  <p>I'm currently thinking that I would have a pub and sub socket on each driver and a sub/pub socket on the client.  Messages shouldn't be dropped once a connection is made.  I assume that the client would subscribe to the different driver data types and the driver would then subscribe to the clients command messages.</p>
  
  <p>Important considerations:  low latency, lowest possible bandwidth overhead.</p>
  
  <p>I would appreciate any suggestions or recommendations!  Thanks in advance!</p>