Azure Event Grid is a managed event routing service that provides reactive architecture patterns, publishing events from Azure services and custom applications and routing them to subscriber endpoints.

The push model

Event Grid uses a push model: when an event occurs (a blob was created, a resource group was modified, a custom event was published), Event Grid pushes the event to subscribed endpoints. The subscriber does not poll; events are delivered within seconds of publication. The subscriber endpoints can be Azure Functions, Logic Apps, Event Hubs, Service Bus, webhook URLs, or Azure Relay.

Event types and schemas

Event Grid publishes events from dozens of Azure services: Azure Blob Storage (blob created, deleted), Azure Container Registry (image pushed, deleted), Azure Resource Manager (resource created, deleted, updated), Azure Service Bus (active message count threshold reached), and others. Custom events can be published to custom topics using the Event Grid API. The Cloud Events schema (CNCF standard) and the Event Grid schema are both supported.

Dead letter and retry policies

Event Grid retries failed event deliveries with exponential backoff for up to 24 hours. Events that cannot be delivered within the retry window (due to persistent subscriber failure) are sent to a dead letter destination (a blob in Azure Storage) if configured. The dead letter captures the event for later analysis and replay. Without dead letter configuration, undeliverable events are silently dropped after the retry window.

Event Grid vs Service Bus vs Event Hubs

The selection criteria: Event Grid for reactive event routing where the event publisher should not know subscribers (Azure resource events, webhook triggers), Service Bus for reliable messaging where message ordering, sessions, or exactly-once processing is required, and Event Hubs for high-volume event streaming where retention and replay are needed. The three services complement rather than replace each other in a complete event-driven architecture.