aws / aws/aws-cdk

pipelines: Stages to support max concurrent steps

Open
#28,645 0 comments 0 reactions 0 assignees View on GitHub
@aws-cdk/pipelines effort/medium feature-request p2
Dominant language
TypeScript
Stars
12.9k
Forks
4.6k
Avg merge
2d 3h
Merged PRs (30d)
83

Description

### Describe the feature

When using stages with pipelines, there is currently no way to define desired concurrency (akin to `cdk deploy --concurrency`). Adding a new optional parameter to `aws-cdk-lib » pipelines » Wave` of `concurrency` would direct stage creation to use N number of max concurrent steps.

### Use Case

Pipelines uses a large concurrency for stage creation. This causes issues when making larger number of changes to certain services, such as DMS. DMS starts erroring out when more than 8-10 of certain changes take place at the same time. Depending on the changes being implemented, this can cause rollback issues as well.

### Proposed Solution

Add optional parameter to `aws-cdk-lib » pipelines » Wave` of `concurrency`. This would then alter how many steps are added to each stage.

### Other Information

_No response_

### Acknowledgements

- [X] I may be able to implement this feature request
- [ ] This feature might incur a breaking change

### CDK version used

2.118.0

### Environment details (OS name and version, etc.)

Python 3.12, Linux/macos

Contributor guide

Open the contributing guide

Research direction

Start by locating aws-cdk-lib » pipelines » Wave and the stage-creation entry point in the TypeScript sources. Read the related pipeline tests, if present, to understand how steps are currently added; done means an optional concurrency setting limits the maximum concurrent steps without changing behavior when it is omitted.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
ci-cd, cloud
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.