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.