Federal government · Platform performance

Cutting Dataverse load without cutting features

A production Dynamics 365 platform that slowed after a cross-tenant migration, traced to duplicate plugins, overlapping flows and polling integrations, then fixed in order of value.

Context

After a cross-tenant migration, a production Dynamics 365 platform with integrations across several business areas had slowed down.

Evidence

Dataverse and Admin Centre analytics showed high-volume, long-running flows. Plugin trace logs showed redundant, blocking synchronous plugins. Application Insights showed polling integrations peaking at busy times.

Root cause

Duplicate plugin executions and overlapping flows multiplied Dataverse requests for every transaction, while scheduled polling concentrated load at peak.

Before: a single save triggers six plugins, flows and polling jobs. After: one synchronous plugin, with the remaining work queued to Service Bus and processed asynchronously
One business transaction, before and after. Simplified.

What we did

  • Ranked flows and plugins by consumption and user impact
  • Removed redundant executions and moved heavy logic to asynchronous processing
  • Consolidated overlapping flows
  • Replaced polling with event-driven Service Bus and Azure Functions processing
  • Added end-to-end telemetry

Outcome

40% fewer Dataverse API calls, 60% fewer flow runs, transactions 30 to 50% faster, and no throttling at peak.