Amazon Simple Queue Service (SQS) is a managed message queue service from AWS.

It is used to decouple producers and consumers by letting messages sit in a queue until a consumer is ready to process them.

Why people use it

SQS is useful when you want:

  • Durable asynchronous work queues
  • Buffering for bursty traffic
  • Retry handling
  • Integration with AWS Lambda
  • A managed alternative to running your own queue broker

Common pieces

  • Producers send messages to a queue
  • Consumers poll the queue and process messages
  • Visibility timeouts keep messages from being processed by multiple consumers at once
  • Dead Letter Queue support handles messages that keep failing

Compare

SQS is closer to RabbitMQ than to Kafka.

  • RabbitMQ gives you a broker with richer routing and exchange semantics
  • Kafka gives you durable log-based streaming and replay
  • SQS gives you managed queue semantics with less operational overhead