Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Work with Amazon SQS for reliable message queuing. Create standard and FIFO queues, configure dead-letter queues for failed messages, send and receive messages in batches, and build decoupled event-driven architectures.
.claude/skills/terminalskills-aws-sqs/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 165% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 79% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 117% | 0% |
| case-12 | ✓→✓ | = Same ✓ | 323% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 169% | 0% |
Amazon Simple Queue Service (SQS) is a fully managed message queuing service for decoupling microservices. It offers two queue types: Standard (best-effort ordering, at-least-once delivery) and FIFO (exactly-once, ordered).
bash# Create a standard queue aws sqs create-queue \ --queue-name order-processing \ --attributes '{ "VisibilityTimeout": "60", "MessageRetentionPeriod": "1209600", "ReceiveMessageWaitTimeSeconds": "20" }'
bash# Create a FIFO queue (name must end in .fifo) aws sqs create-queue \ --queue-name order-processing.fifo \ --attributes '{ "FifoQueue": "true", "ContentBasedDeduplication": "true", "VisibilityTimeout": "60" }'
bash# Create the DLQ first aws sqs create-queue --queue-name order-processing-dlq # Get DLQ ARN DLQ_ARN=$(aws sqs get-queue-attributes \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/order-processing-dlq \ --attribute-names QueueArn --query 'Attributes.QueueArn' --output text) # Configure main queue to use DLQ after 3 failed attempts aws sqs set-queue-attributes \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/order-processing \ --attributes '{ "RedrivePolicy": "{\"deadLetterTargetArn\":\"'$DLQ_ARN'\",\"maxReceiveCount\":\"3\"}" }'
bash# Redrive messages from DLQ back to source queue aws sqs start-message-move-task \ --source-arn "$DLQ_ARN" \ --destination-arn "arn:aws:sqs:us-east-1:123456789:order-processing"
bash# Send a single message aws sqs send-message \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/order-processing \ --message-body '{"orderId":"12345","action":"process"}' \ --message-attributes '{ "OrderType": {"DataType":"String","StringValue":"premium"} }'
bash# Send to FIFO queue with group ID aws sqs send-message \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/order-processing.fifo \ --message-body '{"orderId":"12345","action":"process"}' \ --message-group-id "customer-789" \ --message-deduplication-id "order-12345-v1"
bash# Send up to 10 messages in a batch aws sqs send-message-batch \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/order-processing \ --entries '[ {"Id":"1","MessageBody":"{\"orderId\":\"001\"}"}, {"Id":"2","MessageBody":"{\"orderId\":\"002\"}"}, {"Id":"3","MessageBody":"{\"orderId\":\"003\"}"} ]'
python# Batch consumer with boto3 import boto3 import json sqs = boto3.client('sqs') QUEUE_URL = 'https://sqs.us-east-1.amazonaws.com/123456789/order-processing' def poll_and_process(): while True: response = sqs.receive_message( QueueUrl=QUEUE_URL, MaxNumberOfMessages=10, # batch up to 10 WaitTimeSeconds=20, # long polling MessageAttributeNames=['All'] ) messages = response.get('Messages', []) if not messages: continue entries_to_delete = [] for msg in messages: try: body = json.loads(msg['Body']) process_order(body) entries_to_delete.append({ 'Id': msg['MessageId'], 'ReceiptHandle': msg['ReceiptHandle'] }) except Exception as e: print(f"Failed: {e}") # Message returns to queue after visibility timeout if entries_to_delete: sqs.delete_message_batch( QueueUrl=QUEUE_URL, Entries=entries_to_delete )
bash# Receive messages with long polling aws sqs receive-message \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/order-processing \ --max-number-of-messages 5 \ --wait-time-seconds 20 \ --message-attribute-names All
bash# Delete a processed message aws sqs delete-message \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/order-processing \ --receipt-handle "AQEBzL..."
bash# Change visibility timeout for a message needing more processing time aws sqs change-message-visibility \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/order-processing \ --receipt-handle "AQEBzL..." \ --visibility-timeout 120
bash# Check queue depth aws sqs get-queue-attributes \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/order-processing \ --attribute-names ApproximateNumberOfMessages,ApproximateNumberOfMessagesNotVisible,ApproximateNumberOfMessagesDelayed
bash# Purge all messages (use with caution) aws sqs purge-queue \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/order-processing
ApproximateNumberOfMessages and alert on queue depth spikes| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-11 | fail→fail | 4,788 | 3,165 | -34% | 1 | 1 | 0% | 959 | 2,251 | +135% | 0 | 0 | — |
case-12 | pass→pass | 3,026 | 2,960 | -2% | 1 | 1 | 0% | 562 | 2,377 | +323% | 0 | 0 | — |
case-01 | fail→pass | 5,020 | 5,675 | +13% | 1 | 1 | 0% | 1,152 | 3,049 | +165% | 0 | 0 | — |
case-02 | fail→pass | 5,717 | 3,144 | -45% | 1 | 1 | 0% | 1,322 | 2,364 | +79% | 0 | 0 | — |
case-03 | fail→pass | 5,724 | 2,878 | -50% | 1 | 1 | 0% | 1,061 | 2,307 | +117% | 0 | 0 | — |
case-04 | pass→pass | 4,611 | 5,245 | +14% | 1 | 1 | 0% | 1,005 | 2,705 | +169% | 0 | 0 | — |
case-05 | pass→pass | 6,239 | 4,747 | -24% | 1 | 1 | 0% | 1,236 | 2,660 | +115% | 0 | 0 | — |
case-06 | pass→pass | 6,867 | 3,912 | -43% | 1 | 1 | 0% | 1,473 | 2,506 | +70% | 0 | 0 | — |
case-07 | pass→pass | 16,456 | 8,876 | -46% | 1 | 1 | 0% | 2,809 | 3,517 | +25% | 0 | 0 | — |
case-08 | pass→pass | 8,523 | 5,987 | -30% | 1 | 1 | 0% | 1,747 | 2,886 | +65% | 0 | 0 | — |
case-09 | fail→fail | 3,777 | 4,184 | +11% | 1 | 1 | 0% | 803 | 2,480 | +209% | 0 | 0 | — |
case-10 | pass→pass | 3,837 | 2,125 | -45% | 1 | 1 | 0% | 680 | 2,152 | +216% | 0 | 0 | — |
case-13 | pass→pass | 2,544 | 1,889 | -26% | 1 | 1 | 0% | 408 | 2,112 | +418% | 0 | 0 | — |
case-14 | pass→pass | 7,748 | 4,187 | -46% | 1 | 1 | 0% | 1,454 | 2,544 | +75% | 0 | 0 | — |
case-15 | pass→pass | 9,407 | 6,235 | -34% | 1 | 1 | 0% | 1,747 | 2,922 | +67% | 0 | 0 | — |
case-16 | pass→pass | 7,624 | 4,894 | -36% | 1 | 1 | 0% | 1,479 | 2,681 | +81% | 0 | 0 | — |
case-17 | pass→pass | 7,099 | 9,167 | +29% | 1 | 1 | 0% | 1,246 | 3,580 | +187% | 0 | 0 | — |
case-18 | pass→pass | 3,614 | 2,741 | -24% | 1 | 1 | 0% | 644 | 2,235 | +247% | 0 | 0 | — |
case-19 | pass→pass | 12,636 | 8,980 | -29% | 1 | 1 | 0% | 2,301 | 3,506 | +52% | 0 | 0 | — |
case-20 | pass→pass | 4,753 | 5,263 | +11% | 1 | 1 | 0% | 961 | 2,930 | +205% | 0 | 0 | — |
case-21 | pass→pass | 7,052 | 7,715 | +9% | 1 | 1 | 0% | 1,658 | 3,545 | +114% | 0 | 0 | — |
case-22 | pass→pass | 4,997 | 3,745 | -25% | 1 | 1 | 0% | 1,095 | 2,537 | +132% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +14 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.