An onboarding process for Dataverse partner rows must call an external verification service, wait up to several days for a human approval delivered by an external event, and then provision accounts in two systems. Progress must survive restarts, and completed steps must not run twice. Which Azure Functions capability fits this requirement best?
Select an answer to reveal the explanation.
Short Explanation
Durable Functions is like a game that auto-saves: if the console reboots, you pick up at the last checkpoint instead of level one. An orchestrator waits days for an external event without burning compute and never repeats finished steps. The other answers either restart from scratch or try to hold a connection open for days.
Full Explanation
Durable Functions extends Azure Functions with orchestrator functions whose state is checkpointed to storage. Each activity call, timer, and external event wait is recorded, so after a restart the orchestrator replays its history and resumes at the next step without re-executing completed activities. An orchestrator can call the verification service as an activity, wait for an external event representing the approval for days without consuming compute, and then run the provisioning activities, which suits a long human-in-the-loop process. A timer-triggered function that re-runs the full process must reconstruct state from a status column and protect every step against duplication by hand, reinventing what the orchestrator provides. An HTTP-triggered function cannot hold a request open for days; HTTP triggers are bound by request timeouts and connection limits, so the wait would fail long before approval arrives. Repeatedly re-queuing a message with a delay can simulate waiting, but it does not record which steps completed, and every retry risks repeating provisioning. Exam caveat: orchestrator code must be deterministic, so current time, random values, and I/O belong in activities or orchestration APIs. Operational check: start an instance, restart the function app mid-wait, raise the approval event, and confirm the orchestration resumes and completes without duplicate provisioning.