You once shoved a job onto SQS or RabbitMQ for an async worker pool and watched it Just Work. Then a worker crashed and the email never sent. Or the visibility timeout fired mid-process and the same payment got applied twice. Or a malformed message hit the queue and the CPU graph went vertical until someone redeployed. Each of those bugs has a name; each name lives in a specific mechanism the broker provides; and each mechanism has two failure modes — one for each end of its knob.
This curriculum is the working developer's guide to those mechanisms, taught in the order the failures show up in production. It is also — explicitly — the contrast curriculum to Kafka. Kafka has its own thirteen scenes in this catalog. This one teaches the other messaging primitive: a queue where each message goes to exactly one consumer, where the consumer's ack is what deletes the message, where retries land in a dead-letter queue, and where you cannot have both global ordering and competing consumers on the same key. By the end you should be able to articulate, sentence by sentence, when Kafka is the wrong tool and when a queue is.
Resist the urge to "describe RabbitMQ" or "describe SQS." Make decisions yourself, defend them, and let the AI push back.