Architecture note2 lab guides2 lab guides
SQS · Simple Queue Service
Visibility timeouts, FIFO semantics, and duplicate delivery you can watch happen.
Outcome
- Create a standard queue with the right visibility timeout and retention settings
- Send single messages, batches, and messages with attributes
- Explain why receive does not delete, and what happens if you forget to delete
- Read
ApproximateNumberOfMessagesNotVisibleand know what it means - Handle an expired receipt handle error and explain how to prevent it
- Explain the difference between short polling and long polling and when to use each
- Set
ReceiveMessageWaitTimeSeconds=20at the queue level - Use
change-message-visibilityas a heartbeat for slow consumers - Write a correct consumer loop: receive → process → delete on success, no-op on failure
- Explain what at-least-once delivery means for consumer idempotency
- Create a DLQ and attach it with a redrive policy
- Trigger DLQ routing by failing messages N times and observe
ApproximateReceiveCount - Use
start-message-move-taskto redrive messages back without a custom Lambda - Explain the DLQ retention trap and why DLQ retention must be >= source retention
- Create a FIFO queue with content-based deduplication and a FIFO DLQ
- Send messages with
MessageGroupIdand explain what it controls - Observe strict ordering within a group and independent delivery across groups
- Demonstrate head-of-line blocking by holding a message in-flight
- Verify deduplication by sending the same body twice and confirming queue depth = 1
- Name the six SQS CloudWatch metrics and what each measures
- Explain why
ApproximateAgeOfOldestMessageis more actionable than queue depth alone - Create DLQ, message age, and queue depth alarms with correct thresholds and
treatMissingData - Diagnose slow-consumer vs stopped-consumer using
VisibleandNotVisiblemetrics - Explain why SQS metrics have 5-minute resolution and what that means for alarm response time