SQS, SNS, Eventbridge, DynamoDB - Chosing the right queue system in AWS

AWS has so many different queuing services.

For newcomers to AWS, having so many solutions for a seemingly simple problem can be overwhelming.

Here is a breakdown of each queuing service and when you might use it.

SQS

Sending: 1 to 1

What it is: Literally a "simple queue system". Does what it says on the tin, send a message to a queue, have it consumed, easy.

When to use it:

SNS

Sending: 1 to Many

What it is: High throughput "fan-out" message distribution.

When to use it:

Eventbridge

Sending: 1 to Many

What it is: Event bus's. Think of them like queues but messages can go to multiple places. Similar to SNS but you can define rules for which messages go to which consumer.

When to use it:

Amazon MQ

Sending: 1 to Many (depending on configuration)

What it is: AWS's managed RabbitMQ solution

When to use it:

DynamoDB

Sending: 1 to 1

What it is: NoSQL database

When to use it (for queues):

Hopefully you feel a lot more confident in making an architectural decision about which queuing technology to use in AWS. If you have an application and you're confused as what to use, send me a message on twitter @joshghent