Durable Orchestration¶
Coordinate long-running workflows with Durable Functions in .NET isolated worker.
flowchart LR
A[Trigger] --> B[Function]
B --> C[Binding or SDK]
C --> D[Azure service] Topic/Command Groups¶
Orchestrator skeleton¶
[Function("OrderOrchestrator")]
public async Task<string> RunOrchestrator(
[OrchestrationTrigger] TaskOrchestrationContext context)
{
var id = context.GetInput<string>();
await context.CallActivityAsync("ReserveInventory", id);
await context.CallActivityAsync("ChargePayment", id);
return "completed";
}
HTTP starter¶
[Function("StartOrder")]
public async Task<HttpResponseData> StartOrder(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "orders/start")] HttpRequestData req,
[DurableClient] DurableTaskClient client)
{
string instanceId = await client.ScheduleNewOrchestrationInstanceAsync("OrderOrchestrator");
return await client.CreateCheckStatusResponseAsync(req, instanceId);
}