Service Bus vs Storage Queues vs Event Grid vs Event Hubs

Verdict: Commands that must land exactly once go on Service Bus. Reactive triggers go on Event Grid. Streaming with replay goes on Event Hubs. Storage Queues only for queues over 80 GB or when an audit trail is required.

CriterionService BusStorage QueuesEvent GridEvent Hubs
SemanticsCommands; at-least-once delivery, at-most-once processingSimple async jobsDiscrete events, push or pullStreaming log, replay by offset
Max message256 KB Standard; 100 MB Premium64 KBEvent envelope, not payload transportEvent batches, throughput-unit metered
Ordering and dedupSessions (FIFO), duplicate detection, transactions, DLQNone; at-least-once onlyNo ordering guaranteePer-partition ordering
Retention or replayTTL up to 14 daysUp to 7 days24-hour push retry window7 days Standard; 90 days Premium and Dedicated
Choose whenOrder, payment, reservation flowsQueue may exceed 80 GB; audit trail neededAzure resource change triggers; consumer behind Private Link uses pullKafka migration without code changes; telemetry backfill

Rules

Traps