SQS vs RabbitMQ

For a start, Amazon SQS is a pseudo-queue which means the delivery of every message(if it reaches the queue) is guaranteed but not in a FIFO fashion which usually happens in a queue.

If the order of messages is important to you and you want the queue to work in a FIFO fashion, the Amazon SQS documentation states to handle this in your application logic as the messages from the Amazon SQS will reach you out of sequence.

Compared to this, as far as I know, you can implement worker queues in RabbitMQ. If that rids you of implementing queue message sequencing at application level then this would be a more preferable option.

Here are a few factors to help you decide which one to go for:

  1. Queue message sequence as mentioned above.
  2. You can setup your own server with RabbitMQ but not in the case of Amazon SQS so the cost gets involved here.
  3. Setting up your own server will require good knowledge of the subject so that you do not leave any corner untouched. This is not the case with Amazon SQS as it is pretty quick to get started with.
  4. Your own RabbitMQ server means maintenance cost down the line which is not the case with Amazon SQS.

Updates:

  1. Amazon SQS now supports FIFO queues.

Leave a Comment