|
| 1 | +--- |
| 2 | +title: Overview of Event Hubs emulator |
| 3 | +description: This article provides an overview of Azure Event Hubs emulator. |
| 4 | +ms.topic: article |
| 5 | +ms.author: Saglodha |
| 6 | +ms.date: 05/06/2024 |
| 7 | +--- |
| 8 | + |
| 9 | + |
| 10 | +# Overview of Event Hubs emulator |
| 11 | + |
| 12 | +Azure Event Hubs emulator is designed to offer a local development experience for Azure Event Hubs, enabling you to develop and test code against our services in isolation, free from cloud interference. |
| 13 | + |
| 14 | +### Benefits of emulator |
| 15 | + |
| 16 | +The primary advantages of using the emulator are: |
| 17 | + |
| 18 | +- Local Development: The Emulator provides a local development experience, enabling developers to work offline and avoid network latency. |
| 19 | +- Cost-Efficiency: With the Emulator, developers can test their applications without incurring any cloud usage costs. |
| 20 | +- Isolated Testing Environment: You can test your code in isolation, ensuring that the tests aren't impacted by other activities in the cloud. |
| 21 | +- Optimized Inner Development loop: Developers can use the Emulator to quickly prototype and test their applications before deploying them to the cloud. |
| 22 | + |
| 23 | +>[!NOTE] |
| 24 | +> Event Hubs emulator is licensed under End user License Agreement. For more details, refer [here.](https://github.com/Azure/azure-event-hubs-emulator-installer/blob/main/EMULATOR_EULA.md) |
| 25 | +
|
| 26 | +### Features of Emulator |
| 27 | + |
| 28 | +This section highlights different features provided with Emulator: |
| 29 | + |
| 30 | +- Containerized Deployment: The Emulator runs as a Docker container (Linux-based). |
| 31 | +- Cross-Platform Compatibility: It can be used on any platform, including Windows, macOS, and Linux. |
| 32 | +- Managing Entity Configuration: Users can manage number of event hubs, partition count etc. using JSON supplied Configuration. |
| 33 | +- Streaming Support: The Emulator supports streaming messages using AMQP (Advanced Message Queuing Protocol). |
| 34 | +- Observability: It provides observability features, including console and file logging. |
| 35 | + |
| 36 | +### Known Limitations |
| 37 | + |
| 38 | +Current version of emulator has the following limitations: |
| 39 | + |
| 40 | +- It can't stream messages using Kafka protocol. |
| 41 | +- It doesn't support on fly management operations using Client side SDK. |
| 42 | + |
| 43 | +> [!NOTE] |
| 44 | +> In case of container restart,data and entities are not persisted in emulator. |
| 45 | +
|
| 46 | +### Difference between emulator and Event hubs cloud service? |
| 47 | + |
| 48 | +Since Emulator is only meant for development and test purpose, there are functional differences between emulator and cloud service. Here are the high-level features that aren't supported in the Event Hubs emulator: |
| 49 | + |
| 50 | +- Azure Goodness – VNet Integration/ Microsoft Entra ID integration/ Activity Logs/ UI Portal etc. |
| 51 | +- Event Hubs Capture |
| 52 | +- Resource Governance features like Application Groups |
| 53 | +- Auto scale capabilities |
| 54 | +- Geo DR capabilities |
| 55 | +- Schema Registry Integration. |
| 56 | +- Visual Metrics/ Alerts |
| 57 | + |
| 58 | +>[!CAUTION] |
| 59 | +>The emulator is intended solely for development and testing scenarios.Any kind of Production use is strictly discouraged. There is no official support provided for emulator. |
| 60 | +> Any issues/suggestions should be reported via GitHub issues on emulator Installer [repository.](https://github.com/Azure/azure-event-hubs-emulator-installer/issues). |
| 61 | +
|
| 62 | +### Managing Quotas and Configuration |
| 63 | + |
| 64 | +Like our cloud service, Azure Event Hubs emulator provides below quotas for usage: |
| 65 | + |
| 66 | +| Property| Value| User Configurable within limits |
| 67 | +| ----|----|----| |
| 68 | +Number of supported namespaces| 1 |No| |
| 69 | +Maximum number of Event Hubs within namespace| 10| Yes| |
| 70 | +Maximum number of consumer groups within event hub| 20 |Yes| |
| 71 | +Maximum number of partitions in event hub |32 |Yes |
| 72 | +Maximum size of event being published to event hub (batch/nonbatch) |1 MB |No |
| 73 | +Minimum event retention time | 1 hr | No |
| 74 | + |
| 75 | + |
| 76 | +### Making configuration changes |
| 77 | + |
| 78 | +You could use config.json to configure quotas associated with Event Hubs. By default, emulator would run with following [configuration](https://github.com/Azure/azure-event-hubs-emulator-installer/blob/main/EventHub-Emulator/Config/Config.json). Under the configuration file, you could make following edits as per needs: |
| 79 | + |
| 80 | +- **Entities**: You could add more entities (event hubs), with customized partition count and consumer groups count as per supported quotas. |
| 81 | +- **Logging**: Emulator supports Logging in file or console or both. You could set as per your personal preference. |
| 82 | + |
| 83 | +>[!IMPORTANT] |
| 84 | +> Any changes in JSON configuration must be supplied before running emulator and isn't honoured on fly. For subsequent changes to take effect, container restart is required. |
| 85 | +>You cannot rename the preset namespace ("name") in configuration file. |
| 86 | +
|
| 87 | +### Drill through available logs |
| 88 | +During testing phase, logs help in debugging unexpected failures. For this reason, Emulator supports logging in forms of Console and File. Follow below steps to review the logs: |
| 89 | +- **Console Logs**: On docker desktop UI, click on the container name to open Console Logs. |
| 90 | +- **File Logs**: These would be present at /home/app/EmulatorLogs within the container. |
| 91 | + |
| 92 | +### Next Steps |
| 93 | + |
| 94 | +For instructions on how to develop locally with Event Hubs emulator, see [test locally with event hubs emulator](test-locally-with-event-hub-emulator.md). |
| 95 | + |
0 commit comments