title: asynchronous message thread using ZMQ
body: <p>i am communicating with an external device via a uart interface. The device will respond to commands (synchronous) but it can also send asynchronous messages when an event happens.</p>
  <p>My plan is to create a receiver function in a separate thread that will handle the asynchronous messages, and if it is not asynchronous then publish it via a zmq publisher socket with the message ID as topic.
  Then in the main thread i can send a command, create a subscriber socket and subscribe to the message ID topic and wait for the reply to arrive.</p>
  <p>My question is if this a good approach ? It feels like a lot of overhead to create and destroy a subscriber socket with every command send ? Is there a better approach to this problem ?</p>