For anyone considering a migration from On prem to Office 365, or in the middle of such a project, you MUST read this article-
It talks about how requests are throttled in CSOM and REST APIs. I have been in way too many conversations with people in the middle of those projects and they inexplicably get a HTTP 503. The code is fine, its just that SharePoint online is throttling/blocking them. Unfortunately these limits were never published, and never publicly acknowledged, well that article fixes that problem.
Now, I completely understand and sympathize with why we need to throttle or block. All other platforms do this too
Twitter API https://dev.twitter.com/rest/public/rate-limiting
Google API https://cloud.google.com/compute/docs/api-rate-limits
But, I also feel that the blocking is too limiting and there must be a workaround to allow non throttled APIs where we need them. For gods sake, people are migrating from on prem to the cloud – you have 1000’s of user profile properties to set, or migrate documents. Just look at the limits,
- REST calls: Call frequency in excess of 1 RPS
- Web services: Call frequency in excess of 1 RPS
- Form POST via HTTP Remote Operation: Call frequency in excess of 1 RPS
ONE request per second? That’s ALL?
Here is my suggestion -
Have these throttles in place as default. But for services hosted only in Azure (effectively making you safer from DDoS), allow a tenant wide permission level that gives you much higher throttle limits. Also Azure will block all requests > 1 minute, so keep that in place.
If you agree, please vote on my UserVoice suggestion here.