Thoughts on Azure Durable Functions

Posted: (EET/GMT+2)

 

Azure Durable Functions build on regular Functions to let you orchestrate long-running workflows using simple C# code. Instead of external queues or databases, you write code that looks sequential but runs as a stateful orchestration.

Here's an example how this might look like (simplified):

[FunctionName("RunWorkflow")]
public static async Task RunWorkflow(
  [OrchestrationTrigger] DurableOrchestrationContext ctx)
{
  await ctx.CallActivityAsync("StepA", null);
  await ctx.CallActivityAsync("StepB", null);
  await ctx.CallActivityAsync("StepC", null);
}

Each CallActivityAsync method call runs in its own function instance, and Durable Functions persist state between them. You can also "fan out"/"fan in" parallel work, or use timers for human approval scenarios.

It's still early days (v1 in 2018), but this pattern feels promising: no explicit queues, reliable checkpoints, and code that explains itself. Keep an eye on cold-start performance and storage costs when many instances run in parallel.