A message
Data the sender expects someone to act on, such as “process order 1042”.
Contoso Retail’s checkout collapses on Black Friday. Over five animated episodes, Maya rebuilds it — buffering work on a storage queue, guaranteeing orders with Service Bus, recording telemetry through Event Hubs, reacting instantly with Event Grid, and wiring it all together with Azure Functions.
One connected storyline — each episode starts with something breaking, then fixes it with the Azure service built for that job. Watch it end to end, or jump straight to the service you need today.
Queue Storage, Service Bus, Event Hubs and Event Grid all move data between programs, but they carry different things. Start with what you are sending, pick the job you need done, then compare the details side by side.
First, what are you sending?
Data the sender expects someone to act on, such as “process order 1042”.
A lightweight notice that something changed. The publisher does not care who reacts.
A continuous, time-ordered series of readings that you analyse together.
Then, what do you need to do?
A simple, very large backlog of work inside a storage account. Producers add tasks; workers poll, lease a message, process it, then delete it.
Watch out: No guaranteed order, no duplicate detection and no built-in dead-letter queue. Track the dequeue count; the Functions queue trigger moves repeat failures to a -poison queue.
Watch the episodeAn enterprise broker with queues, and topics that give each subscription its own copy. With peek-lock, a receiver settles a message only after the work succeeds.
Watch out: Messages are up to 256 KB on Standard and up to 100 MB on Premium. A queue or topic holds 1–80 GB, so it is not a bottomless backlog.
Watch the episodeA partitioned, append-only log built for millions of events. Each consumer reads from its own offset and can rewind within the retention period.
Watch out: Order is kept only within a partition, and there is no dead-letter queue. Each consumer checkpoints its own position.
Watch the episodeA serverless event router. A source announces that its state changed; Event Grid filters the event and pushes it to every matching handler.
Watch out: An event is a notice, not a work queue: up to 1 MB and no ordering. The default retry policy is 30 attempts or 24 hours; configure a dead-letter location or undelivered events are dropped.
Watch the episode| Carries | Messages (tasks) | Messages (transactions) | Event streams | Discrete events |
|---|---|---|---|---|
| How consumers get it | Pull: workers poll | Pull with long polling | Pull: read from an offset | Push to handlers (pull on namespaces) |
| Ordering | Not guaranteed | FIFO with sessions | Within a partition | Not guaranteed |
| Max size | 64 KB | 256 KB · 100 MB Premium | 1 MB · 256 KB Basic | 1 MB |
| When processing fails | Reappears after the visibility timeout; poison handling is up to you | Automatic dead-letter subqueue | No dead-letter; re-read from the last checkpoint | Retries, then optional dead-letter blob |
| How long data stays | Until deleted or its TTL expires (7 days by default) | Until settled or its TTL expires | Retention window: up to 1, 7 or 90 days by tier | Not stored for replay; retried for up to 24 hours |
| Protocols | HTTPS (REST) | AMQP 1.0 · HTTPS | AMQP · Kafka · HTTPS | HTTPS · MQTT |
Every number and limit in this journey comes from Microsoft’s own documentation. Build the same pipelines for real with Microsoft’s guided, exercise-based training.