There are many reasons to use SQS. Let's start by looking at a simple use case followed by a brief review of a few more use cases.
Consider a scenario where you have a collaborative news site or application that accepts images from users, optimizes these images to display in multiple devices, and stores them for future retrieval. If the application users are spread across the globe, the application may get a huge number of visitors that upload images. If these images are directly offloaded to the processing server, the server may not be able to handle the traffic.
If you use a scaled-up environment to process the images, you end up incurring more costs. Also, a scaled-up environment may miss processing some of the images if the process gets interrupted or crashes.
In these scenarios, a message queue comes in handy. The application can send all the image processing...