Azure Queue Storage / Service Bus
"Queues = async messaging; decouple producers and consumers"
Two options in Azure
- Queue Storage — simple queue; part of Storage account; cheap; at-least-once delivery
- Service Bus Queues — richer messaging (sessions, dead-letter, duplicate detection); separate namespace
Memory hook
"Queue = FIFO-style; producer sends, consumer receives; decouple and scale"
Queue Storage (Storage Account)
- Container for messages (not Blob containers; queue is its own resource)
- Put message — producer adds message (text or base64)
- Get message — consumer receives; message becomes invisible for visibility timeout
- Delete message — consumer deletes after processing (or it reappears after timeout)
- Peek — look at message without dequeue
- Max message size — 64 KB (Queue Storage); 256 KB–1 MB (Service Bus, tier-dependent)
Use case
- Simple async work (e.g. “process this job”); low cost; no need for sessions or complex routing
Service Bus Queues
- Namespace → Queue (or Topic for pub/sub)
- Send — producer sends message to queue
- Receive — consumer receives (peek-lock or receive-and-delete)
- Complete — consumer completes message (removes from queue)
- Abandon — message becomes visible again
- Dead-letter — move failed messages to dead-letter queue
- Sessions — ordered processing per session ID
- Duplicate detection — optional dedup by message ID
- TTL — message expiration
Use case
- When you need dead-letter, sessions, duplicate detection, or larger messages; enterprise integration
Flow (simplified)
- Producer sends message to queue
- Message is stored until consumed or TTL
- Consumer receives message (and optionally deletes/completes it)
- If consumer fails, message becomes visible again (or goes to dead-letter in Service Bus)
Interview one-liner
"Azure has Queue Storage (simple, cheap, in Storage account) and Service Bus Queues (sessions, dead-letter, duplicate detection). Both decouple producers and consumers; use Queue Storage for simple jobs, Service Bus when you need richer features."
Cheat sheet
Queue Storage = simple, Storage account, 64 KB
Service Bus = namespace, queues/topics, dead-letter, sessions
Producer = send; consumer = receive → process → complete/delete
Visibility timeout / peek-lock = avoid double process
Dead-letter = failed messages for later inspection