0

Our system currently needs to expose multiple events to other systems like Azure Power Apps, Logic Apps, Azure DevOps or any other Custom app. We are mostly an Azure shop so were looking at Event Grid, Event Hubs and Service Bus.

We have gone through couple of documentation from Microsoft

https://azure.microsoft.com/en-us/blog/events-data-points-and-messages-choosing-the-right-azure-messaging-service-for-your-data/

https://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services

The main criteria we are looking for is

  1. Any subscriber can subscribe to any event it wants. A subscriber may not want to receive all events. It will subscribe to only Event A, Event B
  2. Order of events is important but not significant. Although we can make sure to check this in our publishing service (eg: send an event only if data exists in database)
  3. Cost efficient (obviously!)
  • Considering Point 1, we are leaning more towards Event Grid, as we can create multiple topics for each event and the subscriber can choose to subscribe to whichever topic it wants.

EventGrid

As in the diagram we can see System A and B subscribes to only 1 topic while System C subscribes to all topics. Subscriber can then create Azure Functions (webhooks or eventgrid trigger) to create a subscription and receive the event

  • Event Hubs won't allow distribution mechanism and won't fulfil point 1 since it is more of a streaming service as far as we know

  • Service bus is a brokerage system and can fulfil the needs but we are not sure about its cost and the exact feature-set of Service Bus we will be using

Is event grid is good fit here or should we explore Service Bus more? Are there any more options/alternatives?

Will update the post if more details are required.

Any pointers, opinions appreciated!

1
  • Feels like you have already answered your own question with regards to Azure technologies. I'd advise you to consider if an event system is actually what you need, and have you already considered how to do reconciliation? An option not present here is to provide access to your own event logs (please tell me you are keeping them), which allows for resuming event access from a known good state. The access can be provided through a modest API.
    – Kain0_0
    Apr 26 at 10:51

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy