This document provides direction for the contribution and discovery of functionality being built for SpiceDB.
Because SpiceDB is a community project and has contributions beyond the core maintainers, this document does not attempt to dictate features an ordained timeline. Instead, this document outlines the project's development philosophy and gives readers the tools to discover on-going community efforts.
The development of SpiceDB follows a philosophy of identifying problems, proposing solutions, and reaching agreement across relevant stakeholders BEFORE any code is written.
The complexity of the problem and proposal drive just how much planning work is done. Proposals loosely follow an RFC-style process where anyone in the community is free to represent their opinions and use cases.
If you have any questions about this process, feel free ask in our our Discord.
Not all contributions require in-depth proposals, but they do require consensus and an opportunity for opinions to be raised before development begins. The rest of this document does not track the development of this type of functionality, but only the larger initiatives. You can find this functionality being discussed and developed in less structured GitHub issues that are not labeled as proposal.
You can find a running list of non-proposals here.
Proposals can be opened by anyone at any time.
Although there is no required format, a good proposal contains:
- Problem statement including use cases
- One or more proposed solutions
- Open problems with the solution
- Links to any related proposals or issues
You can find a running list of open proposals here.
Accepted proposals have reached consensus and are ready to have someone begin implementation.
You can find a running list of accepted proposals here.
Completed proposals have been implemented in the past.
You can find a running list of completed proposals here.
Rejected proposals have not reached consensus or have reached consensus not to be implemented.
You can find a running list of rejected proposals here.