SQS vs SNS vs Kinesis which AWS messaging service to use
AWS offers a number of messaging services for transferring data between different applications. Among the most used are Amazon SQS, Amazon SNS, and Amazon Kinesis Streams. All three are built to communicate and exchange information between applications, and each have pros and cons that make them particularly suited for certain situations.
Simple Queue Service (SQS)
SQS is distributed queuing system. Messages are sent into a queue and receivers have to poll messages from SQS. Messages can only be received by a single receivers at a time, meaning that any one receiver can receive a message, process and delete it, but other receivers will not receive the same message later. A main use case for SQS is to decouple or integrate applications, allowing you to send data between the two with the guarantee that all messages get processed.
When to use SQS:
- Your architecture requires asynchronous processing with guarantees that all tasks get processed
- You need a durable and reliable queuing solution that will scale at low cost and require no management on your part
When not to use SQS:
- You need to send messages to multiple receivers