Upcoming enhancements: What’s next

On the horizon

We’re making several changes in CDM 3.19 to enhance how it handles throttling. These include the following:

  • We’re optimizing the Dynamic Drive enumeration pattern to significantly reduce the number of calls made when the drive is initially loading.

  • We’re adjusting the Dynamic Drive default hierarchy to further reduce some pressure on enumeration.

  • We’re introducing a OneDrive cache persistence mechanism to retain permission data between sessions in non-persistent and non-roaming environments. This prevents CDM from repeatedly enumerating permissions on startup, reducing the strain on Microsoft 365.

Beyond the horizon

Looking further ahead to later this year, we’re working on the following enhancements, which are still in the early stages of development:

Graph notifications

Graph notifications will be the single most significant mitigation we can make against throttling. Currently, when users browse their drives, it’s all done on-demand in real-time, which is very efficient. However, when a user keeps a folder open in File Explorer for extended periods, CDM must continuously check for updates to ensure that the folder stays up to date.

At present, CDM handles this by polling the Graph API every 5 minutes by default, or as frequently as every 30 seconds. Even with conservative polling intervals, this results in many redundant requests to Microsoft 365, increasing the risk of throttling without significantly improving the user experience.

A far more effective approach is to have the Graph API notify CDM in real time whenever a change occurs. Instead of polling at fixed intervals, CDM will remain idle and only retrieve updates when the API alerts it to a change. This will not only reduce the number of API calls throughout the day but also improve responsiveness, allowing users to see updates almost instantly rather than waiting several minutes (or longer if throttling is in effect).

Breakglass system

Severe throttling can degrade performance and negatively impact the user experience. As requests are delayed, they can start to accumulate and place even more strain on an already throttled tenancy. To prevent this, we’re developing a breakglass mechanism that will detect when throttling reaches unsafe levels and automatically pause all non-critical requests on the local CDM client. This will give Microsoft 365 time to recover and prevent a spiraling of delays and failures.

Telemetry service

Our telemetry service, currently in beta for select customers and available upon request for those experiencing throttling, will provide real-time insights into API interactions. A wider production release is planned for later this year.

One of the greatest challenges with managing throttling is the lack of visibility. Microsoft 365 does not offer a centralized system to track throttling, meaning each CDM client operates independently without awareness of other clients or the overall throttling status of the tenancy. This makes it difficult for customer admins to detect throttling unless users report issues, and it prevents local CDM clients from adjusting their behavior based on tenancy-wide trends.

Our telemetry service will be optional for customers and partners. When enabled, it will send non-sensitive interaction data results from Microsoft 365, improving visibility and allowing for better throttling management.

Here are two rough example events:

Successful request

TenancyID: {customer tenancy}

Event category: Drive creation

Event time: 09:01:24 UTC

Request status: 200 (success)

Throttled request

TenancyID: {customer tenancy}

Event category: File upload

Event time: 12:03:49 UTC

Request status: 429 (throttled); retry time: 5s

 

These events will give us (and potentially our customers and partners in the future) visibility into throttling activity across tenancies in close to real-time.

Beyond monitoring, this service may also allow dynamic mitigation, where CDM clients can receive live signals about tenancy-wide throttling levels and adjust their behavior accordingly.