fix: add adaptive retry for AWS SSO Admin API rate limits#110
fix: add adaptive retry for AWS SSO Admin API rate limits#110jacobaguon-blip wants to merge 1 commit into
Conversation
Customers with large AWS organizations (300+ accounts, 190+ permission sets) generate ~60k ListAccountAssignments API calls per sync, which exceeds the AWS SSO Admin API rate limit with the default 3-retry budget. This adds RetryMaxAttempts=10 with RetryModeAdaptive to all three config return paths in getCallingConfig(), enabling the AWS SDK's token-bucket rate limiter for automatic client-side throttling. Fixes: Pylon #9651 (Qualtrics) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude finished @jacobaguon-blip's task in 56s —— View job PR Review: Adaptive Retry for AWS SSO Admin API Rate Limits
Overall: Looks good. The change is well-scoped and correctly applies retry config to all three return paths in Positive
Minor Observations
VerdictThe change is correct, minimal, and well-motivated by the production data (306 accounts × 195 permission sets). No blockers — approve with optional nits above. |
Summary
RetryMaxAttempts: 10andRetryMode: aws.RetryModeAdaptiveto all three config return paths ingetCallingConfig()429 ThrottlingException) onListAccountAssignmentsfor large-scale AWS organizationsContext
Qualtrics (Pylon #9651) has 306 AWS accounts × 195 permission sets = ~59,670
ListAccountAssignmentsAPI calls per sync. The AWS SSO Admin API rate limit (~10 TPS) combined with the default SDK retry budget (3 attempts, standard backoff) causes ~15% of syncs to fail withThrottlingException: Rate exceeded.The fix increases the retry budget to 10 attempts and switches to adaptive mode, which adds client-side rate limiting via a token bucket. This is the AWS SDK's recommended approach for high-volume API consumers.
Test plan
go test ./pkg/connector/...passes locally🤖 Generated with Claude Code