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.