Adventures with Durable Functions: Error Handling and Retries

Normally I use, and recommend, Logic Apps for orchestration, but I recently had an ask for sample code of a Durable Function that demonstrated error handling and retry logic. The code for this article can be found at https://github.com/mattruma/MJR047. Using the Azure Storage Emulator I created two queues, one called sayhello and another called sayhello-poison,…

Adventures with Logic Apps: Handling Optional Query Parameters

Ran into an interesting issue challenge with Logic Apps. My Logic App sometimes takes a query parameter called planId. I use the value of planIdto determine whether I should Insert or Update a record in a database. If planId is not provided the statement triggerBody()[‘queries][‘planId’] generates an exception. This was very frustrating to figure out…

Adventures with Azure: Azure SQL and Access Tokens

In this series of articles we will access an Azure SQL database using an access token provided by Azure AD. Why would we even want to do this? Doing it this way means we DO NOT have to provide a User Id and Password in our connection string. In Part 1 we will create the…

Adventures with Azure Cosmos DB: Limit Query RUs

If you have worked any with Azure Cosmos DB you are well aware of Request Units, or RUs. What exactly are RUs and how do they work? The cost of all database operations is normalized by Azure Cosmos DB and is expressed by Request Units (or RUs, for short). You can think of RUs per second as…

Adventures with Azure Cosmos DB: Repository Pattern

In a recent article, Adventures with Azure Table Storage: Repository Pattern, I wrote about how one possible implementation of the repository pattern using the Microsoft.Azure.Cosmos.Table SDK. This article mirrors that article, except this time around I used the Microsoft.Azure.Cosmos SDK. So if you are interested in getting a better understanding, please read that first article…

Adventures with Azure Table Storage: Repository Pattern

I am not a fan of writing wrapper libraries around SDKs. A good mature SDK should be simple to use and require a minimal amount of code to implement. Instead, I would rather focus on guiding the development team on how to best use the SDK, in this case the Microsoft.Azure.Cosmos.Table SDK. What exactly is…

Adventures with Azure Table Storage: Default Retry Policy

I am working on a .NET Core 3.0 C# example of the Repository design pattern leverage Azure Table Storage. I have been using the Microsoft.Azure.Cosmos.Table library. One thing that is nice about leveraging the available SDKs is that a Retry design pattern is often implemented by default using Polly. For the life of me, I…