advanced
Service Bus
Coordinate asynchronous workflows with queues, topics, subscriptions, dead-lettering, sessions, and delivery guarantees.
Azure Service Bus decouples producers and consumers with queues (point-to-point) and topics with subscriptions (pub/sub). Features include dead-letter queues, sessions for ordered processing, duplicate detection, and scheduled delivery—stronger guarantees than simple storage queues.
| Pattern | Service Bus primitive | |---------|----------------------| | Work queue | Queue with competing consumers | | Fan-out events | Topic plus filtered subscriptions | | Ordered handling | Sessions keyed by business id | | Poison messages | Dead-letter after max delivery count |
const sender = serviceBusClient.createSender('orders');
await sender.sendMessages({ body: { orderId: '42' }, messageId: '42' });
On interviews: Service Bus vs Event Grid vs Event Hubs; at-least-once delivery and idempotent handlers; peek-lock versus receive-and-delete; duplicate detection window; and how you would replay dead-letter messages safely.
Common pitfalls: long processing without renewing locks; missing idempotency so retries double-charge; subscriptions without filters causing every consumer to see all events; and no monitoring on dead-letter depth.
The trade-off is rich messaging semantics and enterprise integration versus higher cost and complexity than lightweight queues for simple background jobs.
Checklist:
- Complete or abandon messages before lock expiry.
- Make handlers idempotent with business keys.
- Route topics with subscription filters.
- Alert on dead-letter queue growth.
- Document replay and poison-message runbooks.