When to Choose a Queue Over a Request
By Ingrid Solberg · August 29, 2026 · Engineering
Synchrony is the default because it is legible: caller asks, callee answers, latency is obvious. Queues enter the picture when 'answer later' is either required - the work outlives the request - or protective, smoothing a spiky workload into something your database can digest.
The well-known cost is that queues turn errors into inventory. A poison message in a synchronous call fails one request; in a queue it can block a partition for hours, which is why dead-letter handling is a day-one feature rather than an enhancement.
A useful heuristic: if the caller needs the result to render a response, keep it synchronous; if the caller only needs to know the work was accepted, enqueue it. Most architectures that feel clean follow that rule, and most that feel haunted violate it somewhere.