Skip to content

Known Limitations

Paul Mcilreavy edited this page Dec 23, 2025 · 3 revisions

This page documents the differences between the Azure Event Grid Simulator and the actual Azure Event Grid service. The simulator is designed for local development and testing, not as a full replacement for the production service.

Unsupported Features

The following Azure Event Grid features are not supported by the simulator:

Event Sources

Feature Status Notes
System topics Not supported Azure resource events (Blob Storage, Resource Groups, etc.)
Partner topics Not supported Third-party event sources
Event domains Not supported Multi-tenant event routing

Authentication & Security

Feature Status Notes
Azure AD authentication Not supported Only SAS key/token authentication
Managed identity Not supported No Azure identity integration
Private endpoints Not supported All endpoints are public
IP filtering Not supported No network restrictions

Delivery Targets

Feature Status Notes
Azure Functions (Event Grid trigger) Partial Use HTTP trigger with webhook instead
Logic Apps Not supported Use HTTP webhook instead
Hybrid Connections Not supported
Power Automate Not supported

Advanced Features

Feature Status Notes
Geo-disaster recovery Not supported Single instance only
Input batching Partial Batch size limits may differ
Metrics and monitoring Limited Dashboard only, no Azure Monitor
Diagnostic logs Limited Serilog-based logging only
Custom delivery properties for HTTP Not supported Only for Service Bus and Event Hub

Behavioral Differences

Event Delivery

Aspect Azure Event Grid Simulator
Delivery guarantee At-least-once At-least-once
Maximum batch size 1 MB 1.5 MB (slightly higher)
Maximum event size 1 MB ~1 MB
Retry duration Up to 24 hours Configurable (default 24 hours)
Dead-letter storage Azure Blob Storage Local file system

Subscription Validation

Aspect Azure Event Grid Simulator
Validation timeout 30 seconds Startup only
Manual validation Supported Validation code deterministic from URL
Re-validation On configuration change On restart

Topic Management

Aspect Azure Event Grid Simulator
Dynamic topic creation Via Azure API Configuration file only
Hot reload Yes Requires restart
Multiple instances Yes Single instance

Implementation Notes

In-Memory Queue

The simulator uses an in-memory queue for pending deliveries. This means:

  • Events are lost on restart if not yet delivered
  • No persistence of delivery state between restarts
  • Memory usage grows with pending deliveries

For production testing with durability requirements, consider deploying with a real Azure Event Grid instance.

File-Based Dead-Lettering

Unlike Azure Event Grid which uses Azure Blob Storage for dead-letter events, the simulator writes dead-letter events to the local file system:

  • Default location: ./dead-letters/
  • Format: JSON files with delivery metadata
  • No automatic cleanup or retention policies

Single Instance

The simulator runs as a single instance and does not support:

  • Load balancing
  • High availability
  • Geographic distribution

Compatibility Notes

SDK Compatibility

The simulator is compatible with:

  • Microsoft.Azure.EventGrid SDK
  • Azure.Messaging.EventGrid SDK
  • Any HTTP client that follows the Event Grid API

Schema Compatibility

Full support for:

  • Azure Event Grid schema
  • CloudEvents v1.0 schema (structured, batch, and binary modes)

API Version

The simulator uses API version 2018-01-01. Newer API features may not be supported.

Recommendations

When to Use the Simulator

  • Local development without Azure subscription
  • Unit and integration testing
  • CI/CD pipelines
  • Offline development

When to Use Real Azure Event Grid

  • Production workloads
  • Load testing at scale
  • Testing Azure-specific features (system topics, managed identity)
  • Validating retry behavior with real network conditions

Feature Requests

If you need a feature that's not currently supported, please:

  1. Check GitHub Issues for existing requests
  2. Open a new issue describing your use case
  3. Consider contributing the feature (see Contributing)

Related Topics

Clone this wiki locally