all Technical posts

Rethinking Event Publishing in Arcus EventGrid v3.3

The Arcus EventGrid v3.3 release brings event publishing to a whole new level. It simplifies and enhances the whole process into something very powerful. Keep reading to find out how.

Moving towards new Azure SDK

The v3.3 release steps away from defining our very own event publishing contract. Previously, we used an IEventGridPublisher interface and builder to create an instance of this interface. This instance could be injected into all the parts of the system that needed event publishing. For instance, we used it ourselves when we needed to publish events based on potential expired client secrets. However, recently Microsoft introduced the EventGridPublisherClient class, which does exactly the same thing. With the dependency injection-supported Azure clients, you could inject such a client and publish events without Arcus. This is what software is about: something new comes up and everything changes.

We decided to deprecate our own event publishing functionality in favor of using Microsoft’s, but we didn’t stop there. The problem with Microsoft’s version is that it depends on authentication keys stored in the application configuration (and we know that is not okay). This created an opportunity for us.

Starting from Arcus EventGrid v3.3, there exists a new project called Arcus.EventGrid.Core which extends Microsoft’s EventGridPublisherClient registration by making use of our Arcus secret store. Authentication keys could then be stored like any other secret and the registration made simpler.

Event publishing happens the same way as before. With Azure clients, you can inject such a publisher instance with ease.

Moving towards W3C correlation

When implementing service-to-service correlation across our Arcus components, we used a hierarchical approach. This approach is deprecated which means that we will have to move towards a new way of correlation. W3C is the way forward. The interesting thing about Microsoft’s event publishing and event subscribing system is that it does not come with an automatic service-to-service correlation like other components. This means that Arcus could have a real added value here.

In v3.3 we made sure that the registered event publisher uses the new W3C correlation and by using a single traceparent custom delivery property, you could make sure that the event subscriber is correlated to the event publisher. When an event is published and sent towards an Azure Service Bus instance for example, then Azure Application Insights will make this parent-child relationship visible in the transaction overview.

🚩 Note that the event publisher needs an Arcus correlation implementation. Use Arcus HTTP correlation, Arcus Messaging built-in correlation or implement your own.

Look out for more information about event publishing where we discuss how you can add such a custom delivery property and how this works with other event subscribers.

Managed identity authentication support

That is not all. v3.3 does not only contain a whole new way of event publishing and event correlation features, but we also made sure that you can more easily register such an event publisher with the recommended managed identity authentication system.

Using managed identity during the event publisher registration only requires a topic endpoint, making it not only the safest but the easiest way to register event publishers:

Conclusion

Arcus EventGrid v3.3 is packed with tons of new ways to do event publishing in your application. It is built on top of the new Azure SDK, is adapted to use the newest W3C correlation standard and lets you manage authentication with managed identity. Together, this brings real added value to your project by hiding the complexity behind easy-to-use systems and providing you with familiar Microsoft tools.

See our official documentation for more information on all the currently supported features. If you have any questions, remarks, comments or just want to discuss something with us: feel free to contact the Arcus team at Codit.

Thanks for reading!
-Arcus team

Subscribe to our RSS feed

Hi there,
how can we help?

Got a project in mind?

Connect with us

Let's talk

Let's talk

Thanks, we'll be in touch soon!

Call us

Thanks, we've sent the link to your inbox

Invalid email address

Submit

Your download should start shortly!

Stay in Touch - Subscribe to Our Newsletter

Keep up to date with industry trends, events and the latest customer stories

Invalid email address

Submit

Great you’re on the list!