RabbitMQ Application Integration

Goal

Design and implement reliable RabbitMQ producers and consumers in JavaScript/TypeScript and Python: choose topology and queue semantics, route messages, control retries and delays, and diagnose delivery failures.

Scope

This course covers RabbitMQ's AMQP 0-9-1 application-facing model: connections and channels; exchanges, bindings, routing keys, queues, acknowledgements, confirms, retry/DLX paths, delayed delivery, priority queues, the historical lazy-queue setting, and code in amqplib and Pika. It does not teach broker installation, clustering, access control, federation, streams, or generic distributed-systems theory beyond what reliable handlers require. The primary target is practical application integration; operational policy is introduced only where it changes application behavior.

Knowledge graph

graph TD
  classDef mastered fill:#c8e6c9,stroke:#2e7d32,color:#1b5e20
  classDef active fill:#bbdefb,stroke:#1565c0,color:#0d47a1
  classDef available fill:#fff3cd,stroke:#b8860b,color:#5f4500
  classDef blocked fill:#eeeeee,stroke:#757575,color:#424242
  N01[Connections, channels, and topology] --> N02[Exchanges, bindings, and routing]
  N01 --> N03[Queues and consumer flow]
  N03 --> N04[Acknowledgements, confirms, and idempotency]
  N04 --> N05[Retries, DLX, and DLQ]
  N05 --> N06[Delayed delivery]
  N03 --> N07[Priority and lazy queues]
  N02 --> N08[JavaScript/TypeScript and Python clients]
  N03 --> N08
  N04 --> N08
  N05 --> N08
  N05 --> N09[Reliable workflow design]
  N06 --> N09
  N07 --> N09
  N08 --> N09
  class N01,N02,N03,N04,N05,N06,N07,N08,N09 mastered

Learning path

Reference

Diagnostic summary

Node Evidence Notes
N01 — Connections, channels, and topology mastered easily Distinguished connection, channel, and broker topology; applied idempotent startup and channel-scoped acknowledgements.
N02 — Exchanges, bindings, and routing mastered easily Traced topic patterns, designed a decoupled event topology, and selected fanout for unconditional broadcast.
N03 — Queues and consumer flow mastered with effort Correctly traced per-queue copies, competing consumers, and prefetch; corrected the separate queue/message durability requirements.
N04 — Acknowledgements, confirms, and idempotency mastered with effort Placed acknowledgement after a durable effect, designed idempotent payment processing, and ultimately separated uncertain publisher acceptance from independent consumer acknowledgements.
N05 — Retries, DLX, and DLQ mastered easily Distinguished the DLX routing role from DLQ storage; designed bounded delayed retries and a terminal inspection path.
N06 — Delayed delivery mastered easily Chose durable scheduling for long-lived work, diagnosed per-message TTL head-of-line delay, and designed fixed-TTL retry tiers.
N07 — Priority and lazy queues mastered easily Chose capacity isolation over priority, applied the prefetch limit, and identified the obsolete lazy-queue argument.
N08 — JavaScript/TypeScript and Python clients mastered easily Configured amqplib and Pika manual acknowledgements, bounded prefetch, and explicit terminal nack handling.
N09 — Reliable workflow design mastered easily Applied idempotent redelivery handling, retry-state observability, and an end-to-end bounded failure design.

Sources