Summary

Completed

Contoso's equipment-provisioning solution no longer leaves a caller waiting on a slow availability check. It also no longer depends on anyone kicking off reconciliation or reacting to a Dataverse change by hand. Instead, a function acknowledges long-running work and resolves it in the background. It wakes itself up on a schedule or the moment a Dataverse event fires, and reaches Dataverse through a managed identity rather than a stored secret.

What you learned

  • You explore how to replace a blocking request/response call with an acknowledge-and-poll contract. You also explore how Durable Functions coordinates multi-step and fan-out/fan-in workflows while checkpointing progress, so a restart resumes instead of starting over.
  • You examine how a timer trigger's schedule, runOnStartup setting, and missed-occurrence handling keep nightly reconciliation reliable. You also examine how a Dataverse event reaches a function through either a direct webhook or an Azure Service Bus queue, depending on the coupling the two systems need.
  • You examine how a managed identity, paired with a Dataverse application user and a custom security role scoped to only the tables a function touches, authenticates that function to Dataverse. No client secret is left to store, rotate, or protect.

Learn more