AWS SQS — From First Principles to Production
The rest are published as outlines — the curriculum and structure are settled, the prose is still being written.
A complete course on Amazon Simple Queue Service, written for engineers who need to design, operate and defend SQS-based systems — not just call the API.
It assumes no prior knowledge of messaging systems. It ends with you able to size a consumer fleet with arithmetic, diagnose a growing queue from metrics alone, and argue SQS against Kafka in a design review.
The approach
Every concept is built in the same order:
the problem → the intuition → how it actually works → what breaks in production → the real architecture
Two rules keep it honest:
- Every number is verified. Quotas, limits and prices live in one place —
_reference/aws-facts.md, checked against official AWS documentation and dated. Chapters link to it rather than restating values. Several widely-taught SQS "facts" are years out of date;misconceptions.mdlists them. - Every "why" gets answered. Why deletion is explicit. Why duplicates happen. Why metrics say
"Approximate". Why more consumers stops helping. Why FIFO needs a
MessageGroupId. These are not optional asides — they are the parts that transfer to the next system you build.
Start here
| If you are… | Start at | Then |
|---|---|---|
| New to messaging entirely | 00 — Prerequisites | Read straight through |
| A backend engineer who knows queues | 02 — Introduction to SQS | Then 04 → 05 → 08 → 09 |
| Preparing for an interview | 31 — Interview Preparation | Then modules 07, 08, 09, 13, 15, 25 |
| About to own a queue in production | Production checklist | Then 08, 11, 17, 22, 26 |
| Debugging right now | 26 — Troubleshooting | Or the troubleshooting cheat sheet |
| Revising something you already learned | Cheat sheets | Pick by time available |
Minimum path to being useful in production: 00 → 01 → 02 → 04 → 05 → 08 → 09 → 11 → 17
Difficulty key
🟢 Beginner · 🟡 Intermediate · 🔴 Advanced · ⚫ Production / System Design
Conventions
- Code: Java 21+, AWS SDK for Java 2.x, currently supported Spring Boot. Never credentials in source — the credential chain, profiles, environment variables and IAM roles instead.
- Diagrams: Mermaid, always followed by prose explaining them.
- Numbers: sourced from
_reference/aws-facts.md, never hard-coded in chapter prose. - Terms: defined once, in their owning module; linked everywhere else.
- Depth: hard topics are marked 🟢 what is it / 🟡 how does it work / 🔴 what breaks and how do I design around it.
A note on accuracy
AWS changes quotas, prices and service behaviour. Everything in this course was verified against
official AWS documentation on 2026-09-21, with sources recorded in
_reference/aws-facts.md. That file carries its own re-verification
checklist for the values most likely to drift.
If you find a discrepancy, the AWS documentation wins — and the fix belongs in that one file.
Design and reference
Part 1 — Foundations
MessageId vs ReceiptHandle
05 — The Message Lifecycle
The state machine every later module zooms into
Part 2 — Core mechanics
Part 3 — Efficiency and scale
Part 4 — Operating it
Part 5 — Integrations
@SqsListener — and a hard line between Spring's behaviour and SQS's