Azure Event Grid is a highly scalable, serverless messaging service you can use to integrate your solutions that include cloud application workloads as well as IoT devices. With its flexible consumption methods that include HTTP Push and HTTP Pull delivery, your cloud applications are integrated asynchronously and decoupled to attain greater independent scalability and overall resiliency. Event Grid’s MQTT broker feature enables bidirectional device-to-device, device-to-cloud, and cloud-to-device communication. The kind of data you can transmit through MQTT includes device telemetry, device control messages, and general application messages.
Enterprise applications rely on distributed applications and asynchronous messaging to scale. Following this approach, you have publisher applications that send messages to Event Grid’s HTTP endpoint at rates of up to 40MB/s. Messages are processed by HTTP subscriber clients that connect to Event Grid to read them at rates of up to 80MB/s. With this architecture, publisher and subscriber clients are decoupled and work asynchronously. Clients can scale independently of each other, which is a key concern for distributed applications like microservices. It is for this kind of scenario for which we recently introduced Pull delivery with a new Namespace resource. With Pull Delivery, subscriber clients can poll Event Grid for messages at their own pace and timing allowing them to adapt to varying workloads.
As scale and performance are very important to enterprise applications, the Azure Event Grid team conducted performance tests under several conditions to illustrate the service characteristics under load. All tests used HTTP to publish and read messages with the Pull delivery API. The tests were orchestrated with the help of Azure Load Testing. Event Grid Namespaces were configured with different throughput capacity configurations to match that of the intended load scenario. The following sections report on their results. First, it is fitting to clarify a couple of concepts to understand the report.
Our performance results follow. Please note that the latency results in this report don’t represent a promise or SLA by Azure Event Grid. Rather, these results are provided to give you an idea of the performance characteristics of Event Grid under controlled test scenarios.
In this scenario, the test client publishes 1,000 events/sec and receives and acknowledges those messages.
Y-axis: events per second. X-axis: test time duration.
Note: Acknowledge operations are immediately followed by receive operations in our tests. Therefore, the receive line chart follows the same pattern as that of acknowledge operations.
Y-axis: milliseconds. X-axis: test time duration.
Y-axis: events per second. X-axis: test time duration.
Y-axis: milliseconds. X-axis: test time duration.
While public ingress rate limits currently stand at events/s or 40 MB/s, Azure Event Grid is gearing up to support up to 100K events/s (100 MB/s). Our goal is to preserve lower latencies and smoothen hiccups at all data rates levels.
Important: The following sections provide test results for data rates not yet supported. You cannot configure namespaces to use more than 40 TUs.
Y-axis: events per second. X-axis: test time duration.
Graph showing autoscaling period
Y-axis: milliseconds. X-axis: test time duration.
Graph after autoscaling period
Y-axis: milliseconds. X-axis: test time duration.
In real-world scenarios, events come in all shapes and sizes. Azure Event Grid is designed to excel in handling this diversity. In our tests, the published event sizes ranged from a compact 600 bytes to a substantial 25KB. Publish rates ranged from 30 to 12000 events/s.
Y-axis: events per second. X-axis: test time duration.
Publish and receive MB/s throughput
Y-axis: Megabytes per second. X-axis: test time duration.
Publish latency across all 95 topics.
Y-axis: milliseconds. X-axis: test time duration.
Messaging infrastructure plays a key role for mission critical applications. As applications start from serving a small number of users to serving millions of users or data sources in a few years, the underlying messaging infrastructure needs to keep up with the increasing demand. Whether you're orchestrating moderate or intensive workloads, Azure Event Grid adapts to varying data rates enabling your solutions to scale. We will continue investing in performance improvements to achieve higher throughput and reduce jitters and hiccups.
You can learn more about Azure Event Grid by visiting the links below. If you have questions, you can contact us at mailto:askgrid@microsoft.com.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.