title: Publish/Subscribe reliable messaging: Redis VS RabbitMQ
body: <h2>Background</h2>
  
  <p>I am making a publish/subscribe typical application where a publisher sends messages to a consumer. </p>
  
  <p>The publisher and the consumer are on different machines and the connection between them can break occasionally. </p>
  
  <h2>Objective</h2>
  
  <p>The goal here is to make sure that no matter what happens to the connection, or to the machines themselves, a message sent by a publisher is <strong>always</strong> received by the <strong>consumer</strong>. </p>
  
  <p>Ordering of messages is not a must.</p>
  
  <h2>Problem</h2>
  
  <p>According to my research, RabbitMQ is the right choice for this scenario:</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/29539443/redis-vs-rabbitmq-as-a-data-broker-messaging-system-in-between-logstash-and-elas">Redis Vs RabbitMQ as a data broker/messaging system in between Logstash and elasticsearch</a></li>
  </ul>
  
  <p>However, although RabbitMQ has a tutorial about <a href="https://www.rabbitmq.com/tutorials/tutorial-three-javascript.html" rel="noreferrer">publish and subscriber</a> this tutorial does not present us to persistent queues nor does it mention <a href="https://www.rabbitmq.com/confirms.html" rel="noreferrer">confirms</a> which I believe are the key to making sure messages are delivered.</p>
  
  <p>On the other hand, Redis is also capable of doing this:</p>
  
  <ul>
  <li><a href="http://abhinavsingh.com/customizing-redis-pubsub-for-message-persistence-part-2/" rel="noreferrer">http://abhinavsingh.com/customizing-redis-pubsub-for-message-persistence-part-2/</a></li>
  </ul>
  
  <p>but I couldn't find any official tutorials or examples and my current understatement leads to me to believe that persistent queues and message confirms must be done by us, as Redis is mainly an in memory-datastore instead of a message broker like RabbitMQ. </p>
  
  <h2>Questions</h2>
  
  <ol>
  <li>For this use case, which solution would be the easiest to implement? (Redis solution or RabbitMQ solution?)</li>
  <li>Please provide a link to an example with what you think would be best!</li>
  </ol>