Azure Event Grid

  • Author: Ronald Fung

  • Creation Date: 17 May 2023

  • Next Modified Date: 17 May 2024


A. Introduction

Event Grid is a highly scalable, serverless event broker that you can use to integrate applications using events. Events are delivered by Event Grid to subscriber destinations such as applications, Azure services, or any endpoint to which Event Grid has network access. The source of those events can be other applications, SaaS services and Azure services.

With Event Grid you connect solutions using event-driven architectures. An event-driven architecture uses events to communicate occurrences in system state changes, for example, to other applications or services. You can use filters to route specific events to different endpoints, multicast to multiple endpoints, and make sure your events are reliably delivered.

Azure Event Grid is deployed to maximize availability by natively spreading across multiple fault domains in every region, and across availability zones (in regions that support them). For a list of regions that are supported by Event Grid, see Products available by region.

The event sources and event handlers or destinations are summarized in the following diagram.

Event Grid


B. How is it used at Seagen

As a biopharma research company using Microsoft Azure, you can use Azure Event Grid to build event-driven applications and automate workflows based on events. Here are some ways you can use Azure Event Grid:

  1. Publish and consume events: Azure Event Grid allows you to publish and consume events from various Azure services such as Azure Storage, Azure Functions, and Azure Event Hubs. You can use the Azure portal or APIs to create event subscriptions and configure event handlers.

  2. Automate workflows: Azure Event Grid allows you to automate workflows based on events. You can use Azure Logic Apps or Azure Functions to create workflows that trigger based on specific events.

  3. Integrate with third-party services: Azure Event Grid allows you to integrate with third-party services such as GitHub, Salesforce, and Slack. You can use Azure Logic Apps or Azure Functions to create workflows that integrate with these services and trigger based on specific events.

  4. Monitor events: Azure Event Grid provides monitoring and reporting capabilities to help you track events and identify issues. You can use the Azure portal or APIs to view detailed reports and analysis of event activities.

  5. Scale event processing: Azure Event Grid allows you to scale event processing based on your workload. You can use Azure Event Grid Premium to handle high-volume event processing and guarantee event delivery.


C. Features

Event sources

Event Grid supports the following event sources:

  1. Your own service or solution that publishes events to Event Grid so that your customers can subscribe to them. Event Grid provides two type of resources you can use depending on your requirements.

    • Custom Topics or “Topics” for short. Use custom topics if your requirements resemble the following user story:

      “As an owner of a system, I want to communicate my system’s state changes by publishing events and routing those events to event handlers, under my control or otherwise, that can process my system’s events in a way they see fit.”

    • Domains. Use domains if you want to deliver events to multiple teams at scale. Your requirements probably are similar to the following one:

      “As an owner of a system, I want to announce my system’s state changes to multiple teams in a single tenant so that they can process my system’s events in a way they see fit.”

  2. A SaaS provider or platform can publish their events to Event Grid through a feature called Partner Events. You can subscribe to those events and automate tasks, for example. Events from the following partners are currently available:

  3. An Azure service. The following Azure services support sending events to Event Grid. For more information about a source in the list, select the link.

Event handlers

For full details on the capabilities of each handler and related articles, see event handlers. Currently, the following Azure services support handling events from Event Grid:

Concepts

There are five concepts in Azure Event Grid that let you get going:

  • Events - What happened.

  • Event sources - Where the event took place.

  • Topics - The endpoint where publishers send events.

  • Event subscriptions - The endpoint or built-in mechanism to route events, sometimes to more than one handler. Subscriptions are also used by handlers to intelligently filter incoming events.

  • Event handlers - The app or service reacting to the event.

For more information about these concepts, see Concepts in Azure Event Grid.

Capabilities

Here are some of the key features of Azure Event Grid:

  • Simplicity - Point and click to aim events from your Azure resource to any event handler or endpoint.

  • Advanced filtering - Filter on event type or event publish path to make sure event handlers only receive relevant events.

  • Fan-out - Subscribe several endpoints to the same event to send copies of the event to as many places as needed.

  • Reliability - 24-hour retry with exponential backoff to make sure events are delivered.

  • Pay-per-event - Pay only for the amount you use Event Grid.

  • High throughput - Build high-volume workloads on Event Grid.

  • Built-in Events - Get up and running quickly with resource-defined built-in events.

  • Custom Events - Use Event Grid to route, filter, and reliably deliver custom events in your app.

What can I do with Event Grid?

Azure Event Grid provides several features that vastly improve serverless, ops automation, and integration work:

Serverless application architectures

Event Grid

Event Grid connects data sources and event handlers. For example, use Event Grid to trigger a serverless function that analyzes images when added to a blob storage container.

Ops Automation

Event Grid

Event Grid allows you to speed automation and simplify policy enforcement. For example, use Event Grid to notify Azure Automation when a virtual machine or database in Azure SQL is created. Use the events to automatically check that service configurations are compliant, put metadata into operations tools, tag virtual machines, or file work items.

Application integration

Event Grid

Event Grid connects your app with other services. For example, create a custom topic to send your app’s event data to Event Grid, and take advantage of its reliable delivery, advanced routing, and direct integration with Azure. Or, you can use Event Grid with Logic Apps to process data anywhere, without writing code.

How much does Event Grid cost?

Azure Event Grid uses a pay-per-event pricing model, so you only pay for what you use. The first 100,000 operations per month are free. Operations are defined as event ingress, subscription delivery attempts, management calls, and filtering by subject suffix. For details, see the pricing page.


D. Where Implemented

LeanIX


E. How it is tested

Testing Azure Event Grid involves ensuring that the service is functioning correctly and securely, and meeting the needs of all stakeholders involved in the project. Here are some steps to follow to test Azure Event Grid:

  1. Define the scope and requirements: Define the scope of the project and the requirements of all stakeholders involved in the project. This will help ensure that Azure Event Grid is designed to meet the needs of all stakeholders.

  2. Develop test cases: Develop test cases that cover all aspects of Azure Event Grid functionality, including subscribing to events, publishing events, and handling events. The test cases should be designed to meet the needs of the organization, including scalability and resilience.

  3. Conduct unit testing: Test the individual components of Azure Event Grid to ensure that they are functioning correctly. This may involve using tools like PowerShell or Azure CLI for automated testing.

  4. Conduct integration testing: Test Azure Event Grid in an integrated environment to ensure that it works correctly with other systems and applications. This may involve testing Azure Event Grid with different operating systems, browsers, and devices.

  5. Conduct user acceptance testing: Test Azure Event Grid with end-users to ensure that it meets their needs and is easy to use. This may involve conducting surveys, interviews, or focus groups to gather feedback from users.

  6. Automate testing: Automate testing of Azure Event Grid to ensure that it is functioning correctly and meeting the needs of all stakeholders. This may involve using tools like Azure DevOps Pipelines to set up automated testing pipelines.

  7. Monitor performance: Monitor the performance of Azure Event Grid in production to ensure that it is meeting the needs of all stakeholders. This may involve setting up monitoring tools, such as Azure Monitor, to track usage and identify performance issues.

  8. Address issues: Address any issues that are identified during testing and make necessary changes to ensure that Azure Event Grid is functioning correctly and meeting the needs of all stakeholders.

By following these steps, you can ensure that Azure Event Grid is tested thoroughly and meets the needs of all stakeholders involved in the project. This can help improve the quality of Azure Event Grid and ensure that it functions correctly in a production environment.


F. 2023 Roadmap

????


G. 2024 Roadmap

????


H. Known Issues

There are several known issues that can impact Azure Event Grid. Here are some of the most common issues to be aware of:

  1. Event delivery: There may be delays in event delivery, or events may not be delivered at all. It is important to ensure that the service is properly sized and configured to avoid these issues.

  2. Security issues: Security is a critical concern when it comes to Azure Event Grid. It is important to ensure that Azure Event Grid is secured and that access to the solution is restricted to authorized personnel.

  3. Compatibility issues: Azure Event Grid may not be compatible with all platforms, devices, or languages. It is important to ensure that Azure Event Grid is compatible with the organization’s existing infrastructure before implementation.

  4. Scalability issues: Scalability issues can arise when scaling up or down the service. It is important to ensure that the service can scale to meet the needs of the organization.

  5. Integration issues: Integration issues can arise when integrating Azure Event Grid with other systems and applications. It is important to ensure that Azure Event Grid is designed to work seamlessly with other systems and applications to avoid integration issues.

  6. Testing issues: Testing issues can arise when testing Azure Event Grid. It is important to ensure that testing is carried out thoroughly and that all aspects of Azure Event Grid functionality are tested.

  7. Performance issues: Performance issues can impact the speed and reliability of Azure Event Grid. It is important to monitor performance and address any issues that arise.

  8. Licensing issues: Licensing issues can arise when using Azure Event Grid. It is important to ensure that the appropriate licensing is in place to avoid any legal issues.

Overall, Azure Event Grid requires careful planning and management to ensure that it is functioning correctly and meeting the needs of all stakeholders involved in the project. By being aware of these known issues and taking steps to address them, you can improve the quality of Azure Event Grid and ensure the success of your project.


[x] Reviewed by Enterprise Architecture

[x] Reviewed by Application Development

[x] Reviewed by Data Architecture