Standard queues versus FIFO queues

There are two queue types that can be configured with the SQS: standard and FIFO queues. The standard queue type does not compensate for the randomness of the message distribution across the backend. This means that, when reading messages from the cluster, the messages will try to be delivered with a best effort concept for the message order.

But there are some applications where the message order is important, and in these situations we have the ability to preserve message order as follows:

  • Implementing our own message numbering
  • Creating producer timestamps
  • Configuring FIFO queues

With FIFO queues, the message order is strictly preserved and the messages are sent out to producers in the strict order that they were received. FIFO queues, however, need to compensate for the randomness of the backend distribution, and this means that the FIFO queue service is throttled to up to 300 transactions per second, whereas the standard queues have an unlimited rate at which they can operate. FIFO queues also deliver the message only once, and we need to maintain a processing state separate from our queues, whereas the standard queues introduce a mechanism to deliver the message at least once.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset