Skip to content

Built-in limits

Section 4 · From docs/RESILIENCE.md on GitHub

The defaults sit at or just below each provider's documented limits, so they bind only where the provider would throttle anyway. They live in BUILTIN_LIMITS in cloudg/resilience/limiter.py, with the same sources in comments.

Provider Bucket Rate (rps) Burst Source and reasoning
AWS default leaf, per account x region x service 20 40 general default
AWS ec2, one bucket per API action 20 100 EC2 non-mutating actions: bucket capacity 100, refill 20/s, per action, per account and region (EC2 API throttling)
AWS sts 50 100 STS default quota is 600 RPS per account and region; cloudg stays far below it (IAM and STS quotas)
AWS lambda 15 15 "Rate of control plane API requests" quota, 15/s (Lambda quotas)
AWS route53 5 5 five requests per second per account (Route 53 limits)
AWS resourcegroupstaggingapi 5 10 GetResources has a low per-account TPS quota; about 10 TPS is commonly observed, there is no published figure, cloudg uses half (GetResources)
AWS organizations, cloudformation, cloudcontrol 5 10 no published TPS, throttle early; conservative
AWS controltower 2 5 same
AWS iam 10 40 same
AWS account, provider-wide off
Azure subscription (account bucket) 20 200 ARM subscription reads: 250-token bucket refilled at 25/s, per region per principal; 20% headroom (ARM throttling)
Azure default leaf, per subscription x resource provider 15 100 general default
Azure network 30 200 Microsoft.Network reads: 10,000 per 5 minutes
Azure storage 0.33 20 Storage resource provider list operations: 100 per 5 minutes
Azure resourcegraph, per user 3 15 15 queries per 5-second window per user (Resource Graph throttling)
GCP default leaf, per project or organization x API 10 20 general default
GCP cloudasset.ListAssets 1.5 10 100 requests per minute per consumer project, 800 per minute per organization (Asset Inventory quotas)
GCP cloudasset.SearchAllResources, cloudasset.SearchAllIamPolicies 6 20 400 requests per minute per consumer project (same page)

Other defaults:

Setting AWS Azure GCP
Adaptive floor (min_rps) 0.2 0.1 0.05
In-flight requests per account (max_concurrency) 128 16 16
Breaker threshold / cooldown 5 / 60 s 5 / 60 s 5 / 60 s
max_retries / max_backoff_seconds / deadline_seconds 8 / 60 s / 900 s same same
Retry budget 500 500 500
SDK retries botocore: aws.retry_mode adaptive, aws.max_retries 10 azure-core RetryPolicy: 8 total and status retries, 900 s timeout api_core Retry: 900 s timeout, at most 8 consecutive retries per page

Live operation guard: 120-second cooldown per scope, one live operation per scope, two overall, no per-caller quota, a one-hour operation timeout (section 7).