- Feature Name: (fill with a unique ident, my_awesome_feature)
- Start Date: (fill with today's date, YYYY-MM-DD)
Brief (one-paragraph) explanation of the feature.
- Why are we doing this?
- What use cases does it support?
- What is the expected outcome?
Describe the problem you are trying to solve, and its constraints, without coupling them too closely to the solution you have in mind. If this RFC is not accepted, the motivation can be used to develop alternative solutions.
This is the bulk of the RFC. Explain the design in enough detail for somebody familiar with the product to understand, and for somebody familiar with the internals to implement.
This section should cover architecture aspects and the rationale behind disruptive technical decisions (when applicable), as well as corner-cases and warnings. Whenever the new feature creates new user interactions, this section should include examples of how the feature will be used.
Why should we not do this?
- obscure corner cases
- will it impact performance?
- what other parts of the product will be affected?
- will the solution be hard to maintain in the future?
- What other designs/options have been considered?
- What is the impact of not doing this?
- What are the unknowns?
- What can happen if Murphy's law holds true?