Roadmap › Microsoft Azure for .NET Developers › Module: Integration and Messaging
Lessons in this course (14)
9. Service Bus vs Event Grid vs Event Hubs vs Storage Queues
Intermediate★ Must knowLesson 9 of 14
| Service Bus | Event Grid | Event Hubs | Storage Queue | |
|---|---|---|---|---|
| Type | Enterprise message broker | Event routing (pub/sub, push) | Event streaming / telemetry ingestion | Simple queue |
| Pattern | Queues + topics/subscriptions | Discrete reactive events ("blob created") | High-volume streams with partitions, replay | Basic work queue |
| Features | FIFO via sessions, transactions, duplicate detection, dead-letter queue, scheduled messages, at-least-once / peek-lock | Filtering, retries, dead-lettering, CloudEvents, MQTT | Millions events/s, consumer groups, retention, Kafka endpoint, Capture to storage | 64 KB msgs, huge queues, cheap |
| Use | Orders, payments, workflows between services | React to Azure resource/app events, webhooks | IoT telemetry, logs, clickstreams | Simple background jobs |
csharp
await using var client = new ServiceBusClient("sb-shop.servicebus.windows.net", new DefaultAzureCredential());
await using var sender = client.CreateSender("orders");
await sender.SendMessageAsync(new ServiceBusMessage(BinaryData.FromObjectAsJson(order)) { MessageId = order.Id.ToString() });
await using var processor = client.CreateProcessor("orders", new ServiceBusProcessorOptions { MaxConcurrentCalls = 10, AutoCompleteMessages = false });
processor.ProcessMessageAsync += async args =>
{
var o = args.Message.Body.ToObjectFromJson<Order>();
await Handle(o);
await args.CompleteMessageAsync(args.Message); // otherwise retried; after MaxDeliveryCount → dead-letter queue
};
processor.ProcessErrorAsync += args => Task.CompletedTask;
await processor.StartProcessingAsync();Logic Apps — low-code workflows with hundreds of connectors (Office 365, SAP, Salesforce). API Management (APIM) — API gateway: publish, secure (JWT validation, subscription keys), throttle (rate-limit policies), transform, cache, version, developer portal.