Brief explanation of the feature.
Why are we doing this? What use cases does it support? What is the expected outcome?
If this RFC is not accepted, the motivation could be used to develop alternative solutions. Enumerate the constraints you are trying to solve without coupling them too closely to the solution you have in mind.
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. It should include:
What other designs have been considered? What is the impact of not doing this?
What parts of the design are still TBD?
Why should we not do this? Please consider:
There are tradeoffs to choosing any path. Attempt to identify them here.