(cli): Different --concurrency for different resources (config)
- Dominant language
- TypeScript
- Stars
- 12.9k
- Forks
- 4.6k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 83
Description
### Describe the feature
A configuration where you can adjust the concurrency based on what cloudformation resource is created.
### Use Case
Different CloudFormation resources have different rate limitations and since CloudFormation is not retrying automatically on 429 status codes (at all times at least), e.g.
https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/1095
https://github.com/aws/aws-cdk/issues/15573
A solution to this would be to have a lower concurrency when the underlying cloudformation has a lower request rate.
### Proposed Solution
_No response_
### Other Information
I realize that the underlying problem is not CDK but CloudFormation, but CDK could possibly introduce a default concurrency for different resources, which in turn would allow us to deploy all stacks concurrently, which would immensely speed up deployment times.
I have been using no concurrency for my deployments to circumvent this issue, but recently raised it to 25 for one deployment where I was affecting ~100 stacks but knew that I was not touching ApiGateway and the deployment time was about 5-10 times quicker than it would have been without concurrency. Having CDK work out reasonable rates for concurrency inherently (or make the user able to configure them) would make the CDK experience a lot better.
### Acknowledgements
- [ ] I may be able to implement this feature request
- [ ] This feature might incur a breaking change
### CDK version used
2.84.0
### Environment details (OS name and version, etc.)
Windows 11
Contributor guide
Research direction
Start by tracing the CDK CLI deployment concurrency configuration and how it schedules CloudFormation resource operations. Review the linked CloudFormation rate-limit discussions and determine how per-resource limits should be represented and applied. Done means users can configure different concurrency values for resource types and deployments respect those limits.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, typescript
- Domain
- cli, cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100