Stateful Serverless through Durable Functions

By Aaron Powell

Elevator Pitch

Serverless computing is great for processing at scale, but when it comes to long running operations the lack of state can be a hinderance. Azure Durable Functions aims to solve this through introducing a stateful workflow into Serverless.

Description

You’re introducing Serverless as a component within your application architecture and it’s great at solving the processing-at-scale problems that you have. But there’s one sticking point, how do you handle an operation that takes more than a few seconds to run? What happens when we have an asynchronous operation that needs to complete before you can respond to the caller? We don’t want our Serverless code waiting, that’ll become expensive quickly, instead we want to sleep for a period of time. This is where event sourcing comes in, but do you want to be building your own orchestration engine or managing state across restarts?

Enter Azure Durable Functions; Durable Functions allow you to orchestrate a workflow of functions that can start background jobs and then sleep until they are needed.

From long running asynchronous operations in HTTP APIs to fan out, monitoring processes to human interaction, Durable Functions can be used to solve a variety of different problems without the need to build your own event sourcing platform.

In this talk we’ll look at some of the patterns that Durable Functions helps to solve through a series of live coding exercises that you can take away and experiment with yourself and apply to your own problems.

Notes

This talk intends to give an overview of Durable Functions and the problems they solve through a series of live demos.

One of the demos I will use is a game I have on GitHub (and can be done using .NET, depending on the audience).

Other demos will include:

  • Shopping cart management and inventory reduction
  • HTTP API with a long-running background job
  • Bulk data processing through fan out