Azure / Azure/azure-dev

ARM request rate limiter for parallel provisioning (429 backoff)

Open
#7,916 0 comments 0 reactions 0 assignees View on GitHub
area/provisioning enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.