Design Doc
Purpose
Summarize the problem statement and proposed solution approach.
References
Template Sections
[Project Name]: Design Doc
The title and metadata fields (Author, Created at, Reviewers, Approval Needed, Status) to track ownership and workflow.
Purpose
A brief statement explaining why this design doc exists and the motivation behind the proposal.
Summary
A concise overview of the proposal's key ideas, solution components, and expected outcomes. This section provides readers with a quick understanding of the core approach.
Problem Statement + Context
A clear description of the problem being solved, including relevant background, system behaviors, and constraints.
Proposed Solution
A detailed description of the design or architecture, including diagrams, algorithms, APIs, or workflows.
Resource Usage
Analysis of computational, storage, network, and other resource requirements, including costs and scaling considerations.
Single Point of Failure and Multi Client Considerations
Discussion of potential single points of failure, redundancy strategies, and multi-tenant concerns.
Failure Mode Analysis
Examination of potential failure scenarios, their causes, impacts, and corresponding detection, mitigation, and recovery mechanisms.
Impact on Developer Experience
Assessment of how the changes affect developers, covering tooling, APIs, debugging, and onboarding.
Alternatives Considered
Brief evaluation of alternative approaches and reasons for their rejection.
Risks & Uncertainties
Identification of key risks, unknowns, and potential mitigation strategies.
Workflow
- The
main
branch in the Wonderland repo should remain stable and unchanged. - For new work, create a feature branch (e.g.,
sc-feat/<feature>
orsc-fix/<fix>
). - Within this, create further branches (
feat/<X>
,fix/<Y>
) for specific tasks and open internal PRs targeting the main feature branch. - After all internal PRs have been merged, raise an external PR from the feature branch to the
main
branch of the Optimism repo.
Collaboration
- Schedule sync review sessions with Optimism to present the design doc and incorporate feedback.
- Initial design drafts can be started in Notion for easier iteration and team input, and then migrated to GitHub for final review and versioning.