Skip to content

Choose a Plan

Which Azure Functions hosting plan should you use for an azure-functions-durable-graph app? Because the graph orchestrator waits durably — it releases its worker while paused on wait_for_external_event and between activity calls — plan choice is mostly about cold-start tolerance, networking, and execution-time guarantees rather than about keeping a process alive for the life of a run.

Plan Good fit when Trade-offs
Consumption Bursty or low-volume workloads; you want pay-per-execution and automatic scale-to-zero. Cold starts; per-execution timeout limits apply to individual activities/HTTP calls (not to the durable wait).
Flex Consumption / Premium You need no cold starts, VNET integration, or longer guaranteed per-execution time. Higher baseline cost; pre-warmed instances.
Dedicated (App Service) You already run an App Service Plan and want to co-locate the app, or need "always on". You manage scaling; no scale-to-zero.

Guidance

  • Long human-in-the-loop waits are fine on any plan. A graph paused on an external event is not consuming a worker, so a run can span hours or days even on Consumption.
  • Individual activities must fit the per-execution timeout. Keep node and event handlers below your plan's functionTimeout. Split very long work into multiple nodes.
  • Choose Premium/Dedicated for VNET or no-cold-start requirements, e.g. when node handlers call private endpoints (databases, private model gateways).

For authoritative, up-to-date limits, see the official Azure Functions hosting plans documentation. For host.json, storage, and extension-bundle setup, see Deployment.