Adventures with Cosmos DB: High Ingestion Architecture

Let’s say you need you receive a large number of transactions from a third-party software system. The third party software system would like to send the requests via an API call. Each transaction needs to be validated (good data), enriched (add meta data) and transformed (convert to final format). My first attempt at solving this…

Adventures with Visual Studio: Properties Should Not Return Arrays

Early this morning, I installed the latest update of the Roslyn Code Analyzers in Visual Studio 2019 and was immediately welcomed with this warning: Properties should not return arrays. Something you need to know about me. I have this weird obsession of needing to remove all the “squigglies” that Visual Studio barks about from my…

Adventures with Event Grid: Where Did My Null Properties Go?

The other day I noticed when assigning an object to the Data property of an Event Grid Schema message ✉️, any properties, on that object, that had a null value were going to be ignored. I thought my eyes 👀 were failing me! To test this, I wrote the following in LINQPad. For my Person…

Adventures with Azure AD: Group Overage Claim

I have an ASP.NET Core 2.2 Web App. My app authenticates users with OpenIdConnect against Azure Active Directory. I want to use the Security Groups of the authenticated user for role authorization inside my app. To do this, I needed to setup my App Registration in Azure AD to return the Security Groups as claims….