A course · driven from your phone
Message Queues, SQS-first
Built around one goal: understand the SQS in your ZenRows project well
enough to read it and know, not guess. Every lesson grounds in scraping
jobs. Other brokers show up only to sharpen why SQS chose what it did.
Lessons
-
LESSON 1
The SQS mental model & visibility timeout
A message is borrowed, never just read. The lifecycle, the borrow clock, and the two failure modes that explain everything else.
-
LESSON 2
At-least-once & idempotency: making duplicates boring
Guard vs converge, the ack contract, and a tour of your real task.go guards. Why conveyor skips FIFO and pays for correctness instead.
-
LESSON 3
Long vs short polling: the receive loop
The empty-receive storm and why both of conveyor's loops long-poll. The many-queues wrinkle in the dispatcher pool.
-
LESSON 4
DLQs, redrive & maxReceiveCount
Receive count vs failure count, and the COR-314 story: why your per-run queues use maxReceiveCount 20, not 5.
-
LESSON 5 · the payload
Visibility timeout as a control plane
The advanced patterns you came for: backpressure by bouncing, and an 8-hour retry timer built from a 15-minute primitive.
-
LESSON 6 · a real incident
How conveyor "froze" — with a live simulator
The capstone of 3–5. Run the receive-amplification sim, watch the freeze, then flip the pre-poll gate and watch it stop.
-
LESSON 7 · NEXT
The dynamic queue-per-run architecture
Coming next — why conveyor creates a whole SQS queue per run, how workers discover them, and how they're cleaned up.
Reference
Living documents you'll come back to:
Glossary ·
Mission ·
Trusted resources
I'm your teacher here — ask me anything that's unclear, and tell me when you want
the next lesson.