🔷

Amazon SQS - Producing & Consuming Messages

Producing Messages

  • Producers use AWS SDKs or API calls like SendMessage or SendMessageBatch.
  • Messages remain stored in SQS until explicitly deleted by consumers.
  • Common pattern: Include attributes such as Order ID, Customer ID, or metadata.

Consuming Messages

  • Consumers (EC2, Lambda, on-premise apps, etc.) poll the queue using ReceiveMessage.
  • Can receive up to 10 messages per API call.
  • After processing, messages must be deleted explicitly via DeleteMessage.
  • Visibility Timeout:
    • Period during which a received message is hidden from other consumers.
    • Prevents duplicate processing while a consumer is still working on it.
    • Default: 30 seconds, configurable up to 12 hours.

Scaling and Monitoring

  • CloudWatch metrics like ApproximateNumberOfMessagesVisible help monitor queue depth.
  • Auto Scaling Groups (ASGs) can be configured to scale based on queue length.
  • Consumers can be horizontally scaled to increase processing throughput.