Rules of the Road: API Request Limits in Dynamics 365 Customer Engagement
Imagine you're driving down a multi-lane freeway; the traffic is flowing smoothly, no headaches or primal screams as you're flying around. You, though…you're from Germany! You're used to the openness and speed of the Autobahn! Unfortunately, your speedy habits mess up the flow of traffic for everyone, as cautious drivers start slowing down because you wanted to push the limits of the road. The guy in front of you keeps tapping his brakes to get you to pull back. People might be late for appointments or miss meetings…everyone is delayed.
Why the freeway analogy? Microsoft put a speed limit on API calls in Dynamics 365 Customer Engagement in March to keep all drivers moving along without performance issues. The new limit is 60,000 calls per user, per instance, in a five-minute span. The cap is intended to prevent those excessive users (you, the Autobahn driver) from bogging down servers and possibly affecting other users (everyone else in that section of the freeway). Even though the limit is high enough to never be an issue for most Dynamics 365 Customer Engagement users out there, there's a chance that some might see some impact (brake-tapping). WCF faults and errors messages are thrown, and in those scenarios, there will need to be some reworking.
There are some options that can keep all drivers happy, though. For both HTTP and SDK-based designs, finding the Retry-After values will provide the amount of time that needs to pass before executing more requests and can provide insight on those API groundswell volumes. To scale things and keep a higher-than-60,000 request volume with no faults or errors, use a batch process (ExecuteMultipleRequest) using the Web API as each of those batch calls counts for only one knock against your limit. Here are some considerations in using batch calls.
So, if you find yourself wanting to get a pass on the new speed limit without annoying your neighbors on the freeway, you'll need to do a little work to ensure a smooth ride. And if you're using any integration tools such as KingswaySoft or Scribe, be sure to check out the KingswaySoft announcements and Scribe best practices regarding the new limitations.