Adventures with Cosmos: Alerting and 429 Status Codes

During periods of peak transactions Cosmos may return a 429 Status Code – Too Many Requests, which means the collection has exceeded the provisioned throughput limit (RUs) and that you should retry the request after the server specified retry after duration. I want to setup alerting on both an Azure Function and the underlying Cosmos…

Adventures with Azure: Where is My Service Principal?

When working with the Azure Portal, sometimes the simple tasks can seem difficult to accomplish. In a recent project I needed to to wire up an Azure Key Vault task to retrieve secrets for a deployment in Azure DevOps. In order for the deployment to be able to retrieve the Azure Key Vault secrets the…

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 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…