The Azure Event Hubs emulator offers a local development experience for the Event Hubs service. You can use the emulator to develop and test code against the service in isolation, free from cloud interference.
Benefits
The primary advantages of using the emulator are:
Local development: The emulator provides a local development experience, so you can work offline and avoid network latency.
Cost efficiency: With the emulator, you can test your applications without incurring any cloud usage costs.
Isolated testing environment: You can test your code in isolation, to help ensure that other activities in the cloud don't affect the tests.
Optimized inner development loop: You can use the emulator to quickly prototype and test your applications before deploying them to the cloud.
It doesn't support on-the-fly management operations through a client-side SDK.
Note
After a container restart, data and entities don't persist in the emulator.
Differences from the cloud service
Because the Event Hubs emulator is meant only for development and test purposes, there are functional differences between the emulator and the cloud service.
The emulator doesn't support these high-level features:
Azure features like virtual network integration, Microsoft Entra ID integration, activity logs, and a UI portal
Event Hubs capture
Resource governance features like application groups
Autoscale capabilities
Geo-disaster recovery capabilities
Schema registry integration
Visual metrics and alerts
Note
The emulator is intended solely for development and test scenarios. We discourage any kind of production use. We don't provide any official support for the emulator.
Like the Event Hubs cloud service, the emulator provides the following quotas for usage:
Property
Value
User configurable within limits
Number of supported namespaces
1
No
Maximum number of event hubs in a namespace
10
Yes
Maximum number of consumer groups in an event hub
20
Yes
Maximum number of partitions in an event hub
32
Yes
Maximum size of an event being published to an event hub (batch/nonbatch)
1 MB
No
Minimum event retention time
1 hr
No
Quota configuration changes
By default, the emulator runs with the config.json configuration file. You can configure the quotas associated with Event Hubs by editing this file in the following ways, based on your needs:
Entities: You can add more entities (event hubs), with a customized number of partitions and consumer groups, in accordance with supported quotas.
Logging: The emulator supports logging on a console, in a file, or both. You can choose according to your personal preference.
Important
You must supply any changes in JSON configuration before you run the emulator. Changes aren't honored on the fly. For changes to take effect, you must restart the container.
You can't rename the preset namespace (name) in the configuration file.
Logs for debugging
During testing, console or file logs help you debug unexpected failures. To review the logs:
Console logs: On the Docker desktop UI, select the container name.
File logs: In the container, go to /home/app/EmulatorLogs.
Learn to use Azure Event Hubs to reliably process high-volume data streams to enable you to code applications to send and receive messages through the hub.