Pravega Design Proposals (PDPs) - derekm/pravega GitHub Wiki
This document describes the process we follow for the development of new features. The idea is to propose a design and discuss with the community before starting the implementation to avoid long review processes due to disagreement. The process is the following:
Design document
Write a design document as a child page of this current page. The title of the page should be:
PDP-XX: Short description of the feature
XX is a number that we generate by incrementing the number of the previous proposal. The first number is 01 and hopefully there won't be any contention when creation a new PDP. We will use PDP-XX as a label to refer to the particular design.
The document should contain:
- A problem statement and a description of the proposed solution (Summary)
- A description of API changes if any (API Changes)
- A description of the internal changes (Internal Changes)
- A detailed description covering relevant aspects of scalability and concurrency (Scalability and Concurrency)
- A detailed characterization of relevant fault scenarios (Fault Scenarios)
- A description of any potential performance impact (Performance)
- A section on backward compatibility and migration plan if necessary (Compatibility and Migration)
- A list of new metrics or metrics to be changed (Metrics)
- A section on discarded approaches to solve the problem (Discarded Approaches)
- References, e.g., Github issue or pull request (References)
If a section is not applicable, then say "Not applicable", but do not omit the section.