advanced

Service Bus

Асинхронные workflow: очереди, topics, subscriptions, dead-lettering, sessions и гарантии доставки.

Azure Service Bus разделяет producers и consumers через queues (point-to-point) и topics с subscriptions (pub/sub). Есть dead-letter queues, sessions для упорядоченной обработки, duplicate detection и отложенная доставка — более сильные гарантии, чем у простых storage queues.

| Паттерн | Примитив Service Bus | |---------|----------------------| | Work queue | Queue с competing consumers | | Fan-out событий | Topic и filtered subscriptions | | Упорядоченная обработка | Sessions с business id | | Poison messages | Dead-letter после max delivery count |

					const sender = serviceBusClient.createSender('orders');
await sender.sendMessages({ body: { orderId: '42' }, messageId: '42' });
				

На интервью: Service Bus vs Event Grid vs Event Hubs; at-least-once delivery и идемпотентные handlers; peek-lock vs receive-and-delete; окно duplicate detection; безопасный replay dead-letter сообщений.

Типовые ошибки: долгая обработка без renewal lock; нет idempotency — retries двойно списывают; subscriptions без filters — все consumers видят все события; нет мониторинга глубины dead-letter.

Компромисс — богатая семантика messaging и enterprise integration против более высокой цены и сложности, чем у лёгких очередей для простых background jobs.

Чеклист:

  • Complete или abandon до истечения lock.
  • Идемпотентные handlers с business keys.
  • Маршрутизация topics через subscription filters.
  • Алерты на рост dead-letter queue.
  • Runbook replay и poison messages.