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
Starter Functions (aka DurableClient)
- Start the orchestration - Represented by the different trigger bindings.
- Durable client - Uses the DurableClient binding to start orchestrators.
- 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.
- 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.
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: