ARM request rate limiter for parallel provisioning (429 backoff)
- Dominant language
- Go
- Stars
- 569
- Forks
- 364
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 136
Description
## Context
With parallel layer provisioning, multiple ARM deployments run simultaneously. In shared subscriptions with other users also provisioning, this can trigger ARM's token-bucket throttling (HTTP 429). Without coordinated backoff, parallel layers may enter a retry storm where all layers compete for the same refilling bucket.
## Proposal
Add a cross-layer rate limiter that:
1. Monitors ARM responses for 429 status codes
2. When detected, applies exponential backoff across all in-flight layer provisioning
3. Coordinates retry timing to avoid thundering herd
This could be implemented as a shared `http.RoundTripper` wrapper that all provision layers use.
## References
- PR #7776 review thread: https://github.com/Azure/azure-dev/pull/7776#discussion_r3136349938
- Reviewer: @tg-msft
Contributor guide
Assessment
This issue has not been assessed yet.