SQS vs. SNS
Tags: programming, cloudcomputing
Published: 2023-05-11 21:38:06

Building cloud apps? You’ve likely come across both Amazon Simple Queue Service (SQS) and Amazon Simple Notification Service (SNS). In this blog post, we’ll be breaking down the differences between these two services, and how they can be used together easily with the Nitric Framework.

## SQS — Queue-Based Architecture

SQS is a distributed message queuing service that allows you to decouple and scale your application components. SQS is ideal for applications that need to handle a large volume of messages, and where message order and delivery reliability are important. For example, imagine you have a website where customers can buy your photos. You could use SQS to receive and process those orders asynchronously. When a customer places an order, the order is sent to an SQS queue, and then one or more consumers can process that order to handle customer notifications, update inventory, etc. This also allows for horizontal scaling, as multiple consumers can process orders from the same queue. It also ensures message order and delivery reliability, as orders are processed in the order in which they were received.

## SNS — Event-Driven Architecture

SNS is a distributed publish/subscribe messaging service that enables event-driven architectures. SNS is best suited for applications that need to handle a high frequency of events or notifications, and where immediate processing of those events is important. For example, imagine you have a real-time chat application. You could use SNS to publish chat messages to a topic and then have subscribers receive those messages and display them to users in real-time. This allows components to react to events and trigger other actions.

## Which one do I use?

- Use SQS when you need to ensure message order and delivery reliability.

- Use SNS when you want to handle a high frequency of events or notifications that require immediate processing.

## You may very well just need both -

Consider a social media platform where users receive notifications about new posts.

**SNS**: When a user creates a post, an event is published to a topic. Multiple components, like notification service, email service, and analytics service, are triggered via a subscription to the topic.

**SQS**: Each component independently processes the events received in their respective queues. For example, the notification service sends real-time push notifications, the email service generates personalized email digests, and the analytics service analyzes user behavior.

By combining SNS and SQS, the platform achieves scalable event distribution, reliable message processing, and independent component scalability.

## Ready to experiment?

The Nitric Framework is a cloud development platform allowing you to quickly and easily build cloud-native applications. Nitric supports both messaging styles — queues and events, which means you can use Nitric to build applications that leverage one or both.

To get going, install the CLI and start experimenting and building without incurring cloud costs until you’re ready to deploy — or not, and move on to your next innovation.

## What's next?

Get started with an example application

https://github.com/nitrictech/example-apps

Try a guided walkthrough —

https://nitric.io/docs/guides/serverless-rest-api-example