Template for new feature development.
Identify developer(s), component validation engineer(s) & reviewer(s).
Description of why we need this feature, the high-level use case/problem it addresses.
When is the feature due in the NRE (if relevant) and what community release it is targeting.
Describe the key functionality, use cases and assumptions. This should include what is in-scope and out-of-scope.
Describe the key architecture decisions, benefits & drawbacks.
Describe what software component(s) be modified and how. Diagrams are welcomed.
How is the user/admin expected to interact with the new feature? Describe the API/tool.
What are all the tunables provided to the user/admin?
Any extra statistics that should reported to the user/admin?
Explain how errors will be handled.
Any performance impact?
Any API changes? If so, internal or external API? Any changes required to middleware? Any interop requirements?
Any VOS/config layout changes? How will migration will be supported?
Any extra parameters required in the config file?
Any wire protocol change? How will interop be supported?
Any impact on the rebuild protocol?
Any impact on aggregation?
Any impact on security?
How the feature will be tested? Unit tests, functional tests and system tests need to be covered.
Describe the extra soak/performance tests that should be added.
Description of the different milestones delivering incremental functionality.
Describe what will work/not work and what will be validated.
Targeted date for each milestone.
External papers, web page (if any)
Known issues and future works that was considered out-of-scope.