Major Components in Azure Durable Functions

2022, Mar 01

Durable Functions are stateful workflows, that uses orchestration to manage state, create progress checkpoints, and handle the distribution of function calls across servers. In the background, it makes use of an Azure Storage account to persist execution history, schedule activity functions and retrieve responses.

This is a series where I am going to explain the components of durable functions1 and the different application patterns of implementation.

Understanding the Durable Functions Components

Components

Starter Functions (aka DurableClient)

  • Start the orchestration - Represented by the different trigger bindings.
  • Durable client - Uses the DurableClient binding to start orchestrators.

Starter

Orchestrator Functions

  • Define the workflows -> Implements a durable function pattern.
  • Start Activity Functions -> Orchestrates asynchronous activity functions.
  • Sleep during Activities execution -> Schedules the Activity Functions to run and stops the durable function.
  • Event sourcing -> State is stored in Azure Storage, never updating rows, but appending new ones. Storing full execution history.

Activity Functions

  • Do the work -> Executes a single step of the workflow.
  • Receive and return data -> Can be passed data from the orchestrator, and return data to the orchestrator.

Activity

Application Patterns

In this series I want to approach the different application patterns2 with examples that go beyond the Hello World, so you can implement and use these patterns in the Real World.

Below I am leaving links to the articles to be created in the following weeks:

Full Series

Function chaining

Fan out/fan in

Async HTTP APIs

Monitor

Human interaction

Aggregator (stateful entities)


  1. Azure Durable Functions link
  2. What are Durable Functions? link