Skip to main content

#{RFC Number} - {RFC_TITLE}

  • Author(s):: @{AUTHOR}, @{AUTHOR}
  • Submission Date: {YYYY-MM-DD}
  • Stage: {RFC Stage}
  • Stage Date: {YYYY-MM-DD}

One sentence which is a brief description of the feature from a user perspective.

Design

Requirements

Functional

  • REQ01 (P1): bla bla bla
  • REQ02 (P0): another requirement

Non-Functional

  • REQ03 (P1): bla bla bla

Implementation

Why are we doing this?

What is the motivation for this change?

Why should we not do this?

Is there a way to address this use case with the current product? What are the downsides of implementing this feature?

What is the technical solution (design) of this feature?

Briefly describe the high-level design approach for implementing this feature.

As appropriate, you can add an appendix with a more detailed design document.

This is a good place to reference a prototype or proof of concept, which is highly recommended for most RFCs.

Is this a breaking change?

Describe what ways did you consider to deliver this without breaking users? Make sure to include a BREAKING CHANGE clause under the CHANGELOG section with a description of the breaking changes and the migration path.

What alternative solutions did you consider?

Briefly describe alternative approaches that you considered. If there are hairy details, include them in an appendix.

What are the drawbacks of this solution?

Describe any problems/risks that can be introduced if we implement this RFC.

What is the high-level project plan?

Describe your plan on how to deliver this feature from prototyping to GA. Especially think about how to "bake" it in the open and get constant feedback from users before you stabilize the APIs.

If you have a project board with your implementation plan, this is a good place to link to it.

Are there any open issues that need to be addressed later?

Describe any major open issues that this RFC did not take into account. Once the RFC is approved, create GitHub issues for these issues and update this RFC of the project board with these issue IDs.

Appendix

Feel free to add any number of appendices as you see fit. Appendices are expected to allow readers to dive deeper to certain sections if they like. For example, you can include an appendix which describes the detailed design of an algorithm and reference it from the FAQ.