Amazon SQS is a managed message queue service offered by Amazon Web Services (AWS). SQS stands for Simple Queue Service, SQS was the first service available in AWS. Amazon SQS is a web service that gives you access to queue that can be use to store messages. It provides an HTTP API over which applications can submit items into and read items out of a queue. The queue itself is fully managed by AWS, which makes SQS an easy solution for passing messages between different parts of software systems that run in the cloud.
Amazon SQS is a distributed queue system that enables web service application to queue messages such that one system in the application generates messages to be consumed by another system of application, here we can say that the concept of queue provides a temporary space for messages, that are waiting to be processed. we can say that a queue acts as a buffer between the part of system that producing data and the part of system that recieve data for processing. Queue system resolve the issues that may arise, if the producer system (in a distributed system) is doing work faster then the consumer system can process it.
Benefits of Amazon SQS
Security: You control who can send messages to and receive messages from an Amazon SQS queue.
Durability: To ensure the safety of your messages, Amazon SQS stores them on multiple servers. Standard queues support at-least-once message delivery, and FIFO queues support exactly-once message processing.
Availability: Amazon SQS uses redundant infrastructure to provide highly-concurrent access to messages and high availability for producing and consuming messages.
Server-side encryption (SSE): It lets you transmit sensitive data by protecting the contents of messages in queues using keys managed in AWS Key Management Service (AWS KMS).
Scalability: Amazon SQS can process each buffered request independently, scaling transparently to handle any load increases or spikes without any provisioning instructions.
Ease of setup: Since SQS is a managed service, so you don’t need to set up any infrastructure to start using SQS. You can simply use the API to read and write messages, or use the SQS <-> Lambda integration.
Reliability: Amazon SQS locks your messages during processing so that multiple producers can send and multiple consumers can receive messages at the same time.
features of SQS:
SQS is a cloud service and can be used by any type of software, application, or other service. SQS works at its own independent service in the cloud. A software connects with SQS using a connection by passing the credentials and queue names. SQL also allows applications to create and delete custom queues.
- At-Least-Once Delivery : A message in the queue is delivered at least once. Message delivery is guaranteed, no message is lost.
- Multiple components can work on a single queue: SQS uses a lock mechanism, if one component is using a message, it is made hidden to other components. Upon successful processing, message is deleted from the queue. If the message processing fails, it stays in the queue and is made visible to all the components. This feature is called Visibility Timeout.
- There are two types of queues: Standard and FIFO. In standard queue the messages are picked up randomly. It might not be in the order it entered the queue while FIFO queue uses first-in-first-out, it ensures the order.
- Billing is done based on the number of requests to the queue. SQS is a good service to be used for applications to increase efficiency, reliability and performance.
Some Use Cases of SQS
- In a microservice architecture, messages represent one of the easiest ways to set up communication between different parts of the system. If your microservices run in AWS, and especially if those are Serverless services, SQS is a great choice for that aspect of the communication.
- You don’t have to be running a microservices-oriented application to take advantage of SQS. You can also use it in any kind of application that needs to communicate tasks to other systems.
- You can frequently find messaging systems in the flows of distributed large workloads like map-reduce operations. For these kinds of operations, it’s essential to be able to maintain a queue of all the tasks that need to be processed, efficiently distribute the tasks between the machines or functions doing the work, and guarantee that every part of the work is only done once.
Companies Using SQS :- Lots of companies uses Amazon SQS including Pinterest, Amazon, BMW, NASA, EMS Driving Fuel IQ, Capital One and many more.
The NASA Image and Video Library provides easy access to more than 140,000 still images, audio recordings, and videos — documenting NASA’s more than half a century of achievements in exploring the vast unknown. The architecture includes Amazon SQS to decouple incoming jobs from pipeline processes and Amazon Simple Notification Service to trigger the processing pipeline when new content is updated.
The redBus is an Indian travel agency that specializes in bus travel throughout India by selling bus tickets throughout the country. Tickets are purchased through the company’s Website or through the Web services of its agents and partners. The company also offers software, on a Software as a Service (SaaS) basis, which gives bus operators the option of handling their own ticketing and managing their own inventories. To date, the company says they have sold over 30 million bus tickets and has more than 1750 bus operators using the software to manage their operations.
The BMW Group is using AWS for its connected car application that collects sensor data from BMW 7 Series cars to give drivers dynamically updated map information. BMW built its new car-as-a-sensor (CARASSO) service in only six months leveraging Amazon SQS, Amazon S3, Amazon DynamoDB, Amazon RDS, and AWS Elastic Beanstalk. By running on AWS, CARASSO can adapt to rapidly changing load requirements that can scale up and down by two orders of magnitude within 24 hours. By 2018 CARASSO is expected to process data collected by a fleet of 100,000 vehicles traveling more than eight billion kilometers.
4. Capital One
Capital One is modernizing their retail message queuing by migrating from self-managed message-oriented middleware systems to Amazon SQS. Capital One is using SQS to migrate several core banking applications to the cloud to ensure high availability and cost efficiency while simplifying administrative complexity and overhead.
Hope you find this interesting !
Thanks for reading !