Company
Date Published
Aug. 21, 2019
Author
Tsviatko Yovtchev
Word count
1575
Language
English
Hacker News points
None

Summary

Converting a distributed system to FIFO and exactly-once message processing using Amazon's SQS FIFO queues requires considerable user effort, as the implementation does not guarantee these properties for the entire system. While SQS FIFO queues ensure in-order and exactly-once processing within the queue itself, additional assumptions need to be satisfied for this to apply across the entire distributed system. These include a single, synchronous producer/sender and consumer/receiver transmitting data over a synchronous transport layer. Adding asynchronicity to any part of the system removes the ordering guarantee. Additionally, SQS FIFO queues introduce two limits that make it impossible to guarantee exactly-once processing in all possible cases: a max 5 minutes timeout on storing a given message deduplication ID and the kind of “exactly-once” guarantee it gives to the consumer/receiver. To achieve system-wide FIFO message delivery and exactly-once processing, developers must implement additional restrictions on the distributed system or use other tools in conjunction with SQS FIFO queues.