Durable Functions enables you to create reliable stateful workflows with Azure Functions. This course teaches you how to implement "fan-out fan-in" patterns, pause waiting for human interaction, and how to debug, deploy, and monitor your workflows.
When you're creating workflows with serverless functions, managing errors, tracking state, and running activities in parallel can result in a lot of extra work. In this course, Azure Durable Functions Fundamentals, you'll learn how Durable Functions allows you to easily and reliably build your stateful workflows on top of the Azure Functions platform, while still taking advantage of all its benefits including scalability, rapid development, and a consumption-based pricing model. First, you'll learn how you can handle errors and track the progress of workflows. Next, you'll see how easy it is to implement advanced workflow patterns such as "fan-out fan-in" or waiting for human interaction. Finally, you'll explore how to move from local development and debugging to deploying and monitoring your durable workflows in Azure. When you’re finished with this course, you will have the skills and knowledge of Durable Functions needed to create your own reliable and durable workflows in Azure.
Mark Heath is a software developer based in Southampton, England, working
for NICE Systems as a software architect creating cloud based digital
evidence management systems for the police. He is the creator of NAudio, an
open source audio framework for .NET.
Course Overview Hi everyone, my name's Mark Heath and welcome to my course Durable Functions Fundamentals. I'm a. NET developer and cloud architect working at NICE Systems. Now, have you ever used a functions-as-a-service platform like Azure Functions and used it to connect to multiple serverless functions together into a workflow? Well, it's certainly possible. You'll quickly run into limitations and that's where durable functions comes in. So, in this course we're going to learn how durable functions allows you to easily and reliably build stateful workflows on top of the Azure Functions platform while still taking advantage of all its benefits like scalability, rapid development and a consumption-based pricing model and we'll cover how you can handle errors and track the progress of workflows. We'll see how easy it is to run tasks in parallel to create fan-out fan-in workflows. We'll see how patterns like waiting for human interaction are also very simple to implement with durable functions and of course, we'll learn how to develop and debug our orchestrations locally as well as how to deploy and monitor them in Azure. And by the end of this course you'll be able to implement workflows for your own applications using durable functions. In this course, we'll be using C# as our programming language and it will help if you've used Azure Functions before but even if you haven't, you will be able to follow along. So, I hope you'll join me on this journey to learn about durable functions with the Durable Functions Fundamentals course at Pluralsight.
Introducing Durable Functions Hi, Mark Heath here, and welcome to this course on Azure Durable Functions Fundamentals. And we're going to start of with the obvious question what are Azure Durable Functions, and why would we want to use them? Well, Durable Functions is an extension to Azure Functions. It enables you to write stateful functions in a serverless environment, and it allows you to define workflows in code. Now of course, this assumes that you already know what Azure Functions are, and what serverless is all about. Now, you don't have to have used Azure Functions before in order to follow along with this course, but it will help for you to have, at least a basic idea of what they are. So I'm going to start off by giving you a quick two-minute explanation, of Azure Functions and serverless. And then, we'll be in a position to understand how Durable Functions build on top of that, and why we might want to use them.
Monitoring Workflows and Handling Errors Hi, Mark Heath here and in this module we're continuing our look at Azure Durable Functions by exploring how we can track the progress of our workflows and handle any errors that happen during them. So, here's what we're going to cover in this module. We're going to look in a bit more detail at the REST API that the Durable Functions framework provides for us to check on progress and see some of its other capabilities. We'll take a look behind the scenes at what ends up in our storage account which go some way to helping you understand how the check pointing and event sourcing in the task hubs works. And we'll learn what our options are for dealing with errors that occur part way through our workflows. In particular, we'll focus on handling exceptions in our activities, how we can retry failed activities, and how we can cancel workflows.
Waiting for Human Interaction Hi, Mark Heath here and in this module, we are going to learn how to use durable functions to implement workflows in which we need to wait for human interaction. It's quite common in long-running workflows to have to wait around for some kind of event from an external system. Maybe we've sent an email to a supervisor and we need to wait for them to indicate their approval before the process can continue. Or maybe we've submitted a job to an external system and we need to wait for it to tell us when it's done so we can carry on. Durable functions helps us to do this, allowing our orchestrator function to wait for an external event before it carries on with the workflow. It's also really common in these scenarios to have a timeout. Maybe if the supervisor doesn't respond within two days, we'll send them another reminder email. Again, durable functions allows us to do this, with the orchestrator function detecting that a timeout has occurred and performing the appropriate steps. So in this module we'll update our demo of video processing workflow to include a manual approval step. After we've processed the uploaded videos, we're going to send an email to a supervisor asking them to decide whether the video can be published or not. If they approve it, then we'll initiate a go live activity. If they deny approval, or if they fail to respond within a certain timeout, then we're going to reject the video. So let's have a look at the code that we would need to write to implement this workflow.
Running in Production Hi, Mark Heath here and in this module, we're going to talk about running durable functions in production. Now so far in this course, we've done all of our development locally in Visual Studio. And we've been running our functions app with the local Azure functions development tools and the storage emulator. And that's a great way to explore and experiment with durable functions. But obviously at some point, we are going to want to get our functions running in Azure. So in this module, I want to answer a few questions. First, how can I deploy my function app to Azure? And we'll see that there are actually several choices available to us here. Second, how can I be sure that my durable functions are secure? Third, how can I monitor my functions when they're running in the cloud. And we'll see how application insights integration can help us with that. And finally, what happens when I want to upgrade my functions perhaps changing my workflows in some way? What happens to instances of the workflow that are in progress during an upgrade? And I'll also finish off by showing you some of the additional demo applications that I've created which are part of the course download materials. So let's get started.