microsoft / microsoft/azure-devops-rust-api
Add support for Azure DevOps throttling/rate limiting
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 76
- Forks
- 27
- Avg merge
- 9d 20h
- Merged PRs (30d)
- 3
Description
Azure DevOps services provide throttling feedback via response headers:
We have definitions for these headers in the SDK, but currently don't inspect or process them. It would be good to add common function to clients to provide throttling to avoid hitting limits. This should probably be implemented as an azure_core pipeline policy.
It is worth mentioning I recently enhanced the underlying azure_core pipeline to handle retry-after headers when receiving TooManyRequests or ServiceUnavailable responses, and a future release of azure_devops_rust_api will pick this up when it is released. So that will give appropriate backoff/throttling upon hitting the TooManyRequests state. Implementing support for these additional feedback headers would help reduce the chances of hitting the TooManyRequests limit.
Note: I can see that these headers provide feedback, but it is unclear to me what the actual implementation of the processing logic should be. This needs further investigation - including checking whether any of the other SDKs implement this.
Relevant links:
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked Azure DevOps rate-limit documentation and the SDK's existing response-header definitions, then inspect the azure_core Pipeline and its retry-after handling. Compare how other SDKs process these feedback headers and define the policy's throttling behavior. Done means the client uses the additional headers to reduce the likelihood of reaching TooManyRequests limits.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, rust
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100