Archive · AWS

SQS, SNS and EventBridge: Which to Use

Three messaging services that decouple parts of a system, and how they differ.

1 min read

  • Amazon SQS
  • Amazon SNS
  • Amazon EventBridge
flowchart LR
  P[Producer] --> T[SNS topic]
  T --> Q1[SQS queue: billing]
  T --> Q2[SQS queue: email]
  Q1 --> W1[Worker]
  Q2 --> W2[Worker]
Service Model Use it for
SQS Queue; consumers pull messages Buffering work, smoothing spikes, retries
SNS Pub/sub; pushes to many subscribers Fan-out, notifications to email, SMS, queues, Lambda
EventBridge Event bus with rules and filtering Reacting to AWS events, SaaS events and schedules
aws sqs create-queue --queue-name orders-dlq --region ap-south-1
aws sqs create-queue --queue-name orders \
  --attributes '{"VisibilityTimeout":"60","RedrivePolicy":"{\"deadLetterQueueArn\":\"arn:aws:sqs:ap-south-1:111122223333:orders-dlq\",\"maxReceiveCount\":\"5\"}"}'

Always attach a dead-letter queue so poison messages do not loop forever. SQS delivers at least once, so consumers must tolerate duplicates; use a FIFO queue when order matters. Fan-out (SNS to several SQS queues) lets each consumer fail and retry independently.