aws / aws/aws-cdk

(cli): Different --concurrency for different resources (config)

Open
#27,080 1 comment 0 reactions 0 assignees View on GitHub
cli effort/large feature-request p2 package/tools
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.