Image for post
Image for post

Let’s chat about ordering. It’s one of my favorite topics, and something I’ve blogged about extensively before. Previously ordered processing in Azure Functions was only possible with event streams like Azure Event Hubs, but today I want to show how you can preserve order for Service Bus queues and topics as well.

On the surface it seems pretty straight-forward: I want to be able to process messages from a queue in the exact order that I received them. For a simple service running on a machine, it’s pretty easy to achieve. However, how do I preserve the ordering of queue…


One of the exciting developments from Build this year was support for dependency injection in Azure Functions. This means you can register and use your own services as part of functions. While you’ve been able to use Entity Framework Core in the past, the pairing with dependency injection makes it a much more natural fit. Let’s create a simple Azure Function that can interact with stateful data using Entity Framework Core. I’m going to create a very simple API that can get and set blog data in an Azure SQL Database.

Adding entity framework to a function project

First up, I created a brand new v2 (.NET…


Performance and throughput considerations

I have this conversation about twice a week. Someone has decided they want to take advantage of the benefits of serverless Azure Functions for an upcoming project, but when starting to lay out the architecture a question pops up:

“Should we be using Azure Event Hubs, Queues, or Event Grid?”

It’s honestly a great question — and it’s a question with consequences. Each of these messaging technologies comes with its own set of behaviors that can impact your solution. In previous blogs, I’ve spent some time explaining Event Grid, Event Hubs ordering guarantees, how to have ordering guarantees in queues…


Managing environments and versions

If interested in earlier pieces of this blog series, you can read part 1 (unit tests) or part 2 (automated builds and release)

One of the most frequent conversations I get when working with business on serverless architectures is if I have any recommendations on how to manage environments. There are many different approaches and strategies that can be taken, but I want to show one way you can deploy your serverless apps across different environments automatically and seamlessly.

Image for post
Image for post

Environments

When working with changes or updates to apps in production, even after running unit tests or even integration tests, you likely…


Continuous integration and automated builds

This is part 2 of a series around testing, continuous integration/continuous deployment, and DevOps for serverless Azure Functions. You can read part 1 on unit tests here.

For this example we have a simple Azure Function that can detect odd or even numbers, the next step is to make sure we have the right process and tools for deploying bits into production.

The core to any good code operations story generally revolves around source control. As nice as the Azure Portal is for getting started and trying out simple Azure Functions, anything that’s utilized in production needs to be source…


Unit tests for Azure Functions

A few weeks ago Matthew Henderson was preparing a talk at ServerlessDays London on security. While going over the content with me he educated me on the very interesting theory of Risk Compensation. Risk compensation describes the phenomena where we are less careful when we perceive less risk. The canonical example is that people with seatbelts or anti-lock braking systems drive faster and closer to cars than those who don’t.

Image for post
Image for post
Photo by Fancycrave on Unsplash

One of the side-effects I’ve noticed with serverless is that as more protections are offered from the platform itself, developers tend to take greater risks in their development process. For…


How to avoid missing a message

Event processing is one of the most common scenarios in serverless and Azure Functions. A few weeks ago I wrote about how you can process events in order with functions, and for this blog I wanted to outline how you can create a reliable message processor so you avoid losing any messages along the way. I’ll be honest — this blog could have easily broken into two or three parts, but I’ve decided to keep it all here in a single post. It’s lengthy, but goes from basics all the way to advanced patterns like circuit breaker and exception filters…


⚡️ UPDATE: Azure Service Bus now supports sessions, so you can do in order queue processing with service bus queues and topics in addition to Event Hubs listed below. Service Bus Sessions provide the added benefit of reprocessing failures individually instead of in batches. While Event Hubs can guarantee order as show below, if a partition lock is lost the in-order batch could resume in another instance causing duplicates. Consider using Service Bus Sessions if this is an issue. Both provide at-least-once delivery guarantees.⚡️

I met with a customer this week who was interested in using serverless but didn’t know…


Bitcoin has reached a new level of publicity in the last month. If you have spent any time looking at Bitcoin, you know it is very volatile and prices can fluctuate up and down in minutes. I’m a fairly risk-averse person so I’m not putting much of my personal money into Bitcoin, but was fortunate enough to buy a small amount back in 2013 as an experiment which has grown quite a bit. …


Part 3 — Video AI with Logic Apps and Cognitive Services

This is part 3 in a series of how I have been using Azure Serverless to extend and connect the functionality of my ring.com video doorbell. Part 1 is here.

Ever since I got my ring.com video doorbell installed, I’ve been connecting and extending it with serverless components. Previously I hadn’t added much new functionality that I couldn’t already get from the ring app. Today is when that all changed. …

Jeff Hollan

Senior PM Lead for Microsoft Azure Functions. I help build cloud stuff, and love serverless. Thoughts shared are my own.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store