Skip to content

Latest commit

 

History

History
92 lines (72 loc) · 3.38 KB

0000-template.md

File metadata and controls

92 lines (72 loc) · 3.38 KB
feature name start date rfc pr related issue
(fill me in with a unique identifier, my-awesome-feature)
(fill me in with today's date, YYYY-MM-DD)
(leave this empty)
(tracking issue number)

Summary

Brief description of the feature.

Motivation

Why are we doing this? What use cases does it support? What is the expected outcome?

Basic Example

If the proposal involves a new or changed API, include a basic code example. Omit this section if it's not applicable.

Please focus on explaining the motivation so that if this RFC is not accepted, the motivation could be used to develop alternative solutions. In other words, enumerate the constraints you are trying to solve without coupling them too closely to the solution you have in mind.

Design Summary

Summarize the approach of the feature design in a couple of sentences. Call out any known patterns or best practices the design is based around.

Detailed Design

This is the bulk of the RFC. Explain the design in enough detail for somebody familiar with CDK to understand, and for somebody familiar with the implementation to implement. This should get into specifics and corner-cases, and include examples of how the feature is used. Any new terminology should be defined here.

Include any diagrams and/or visualizations that help to demonstrate the design. Here are some tools that we often use:

Drawbacks

Why should we not do this? Please consider:

  • implementation cost, both in term of code size and complexity
  • whether the proposed feature can be implemented in user space
  • the impact on teaching people how to use CDK
  • integration of this feature with other existing and planned features
  • cost of migrating existing CDK applications (is it a breaking change?)

There are tradeoffs to choosing any path. Attempt to identify them here.

Rationale and Alternatives

  • Why is this design the best in the space of possible designs?
  • What other designs have been considered and what is the rationale for not choosing them?
  • What is the impact of not doing this?

Adoption Strategy

If we implement this proposal, how will existing CDK developers adopt it? Is this a breaking change? How can we assist in adoption?

Unresolved questions

  • What parts of the design do you expect to resolve through the RFC process before this gets merged?
  • What parts of the design do you expect to resolve through the implementation of this feature before stabilization?
  • What related issues do you consider out of scope for this RFC that could be addressed in the future independently of the solution that comes out of this RFC?

Future Possibilities

Think about what the natural extension and evolution of your proposal would be and how it would affect CDK as whole. Try to use this section as a tool to more fully consider all possible interactions with the project and ecosystem in your proposal. Also consider how this fits into the roadmap for the project.

This is a good place to "dump ideas", if they are out of scope for the RFC you are writing but are otherwise related.

If you have tried and cannot think of any future possibilities, you may simply state that you cannot think of anything.