What is the problem?
Describe the problem. Why is it a problem? Who or what is impacted by the problem?
Proposed solution
What should we do to solve the stated problem? If needed or applicable, provide pseudo-code to describe the solution.
Eliminate?/Alternatives
Can this activity be eliminated altogether? Are there other places where a smaller effort will eliminate this task? What are the alternatives, why should they not be chosen? (please carefully reflect on atleast 1 or 2 other paths including elimination)
With the solution implemented, what will we be able to demonstrate?
The answer to this will help define the acceptance criteria for completeness for this work.
Impact
Describe the impact this change will have on the platform (ex The proposed solution impacts both consensus and storage.).
Dependencies
To provide this solution, is any other work required in another component or by another team?
Design Considerations
Describe the issues which need to be addressed or resolved before attempting implementation.
Steps to implement the solution
Provide a list of steps needed to implement the solution.
Steps for integration testing
If applicable, describe the steps for an integration test.