title: Recommendations for C/C++ remote message queues
body: <p>I am working on a project which involves several C++ programs that each take input and generate output. The data (tens to hundreds of bytes, probably JSON) essentially flows (asynchronously) in one direction, and the programs will need to be located on different Linux computers around the LAN.</p>
  
  <p>Since the data flows in only one direction, I don't believe I need a transactional model like HTTP. I think a message queue model (fire and forget) makes the most sense and should simplify the logic of each program. It is probably sufficient to merely note that the message was added to the remote queue successfully.</p>
  
  <p>What I am looking for are recommendations for how to implement this message queue in C or C++. It seems like <a href="http://linux.die.net/man/7/mq_overview" rel="noreferrer">POSIX</a> and <a href="http://www.boost.org/doc/libs/1_35_0/doc/html/boost/interprocess/message_queue.html" rel="noreferrer">Boost</a> message queues are limited to a single host, and <a href="http://www.rabbitmq.com/" rel="noreferrer">RabbitMQ</a> seems to have weak C/C++ support, and <a href="http://www.sixtyfourbit.org/mq4cpp.htm" rel="noreferrer">MQ4CPP</a> seems inadequately supported for a business-critical role. Am I wrong about this? What about Boost <a href="http://www.boost.org/doc/libs/1_49_0/doc/html/boost_asio.html" rel="noreferrer">ASIO</a> or <a href="http://www.cs.wustl.edu/~schmidt/ACE.html" rel="noreferrer">ACE</a> or writing socket code myself? I look forward to your suggestions.</p>