Architecture Decision Records (ADR)¶
Recording significant architectural decisions for Mycelix Protocol
What is an ADR?¶
An Architecture Decision Record (ADR) captures a significant architectural decision, its context, and its consequences. ADRs help us:
- Understand why decisions were made
- Track evolution of our thinking over time
- Onboard new contributors by explaining the "why" behind the "what"
- Avoid revisiting settled decisions
- Learn from past successes and failures
ADR Index¶
Active Decisions¶
| ADR | Title | Status | Date | Impact |
|---|---|---|---|---|
| 001 | Multi-Backend Architecture (PostgreSQL + Holochain + Chains) | ✅ Accepted | Nov 2025 | High |
| 002 | 3D Epistemic Cube (E/N/M Axes) | ✅ Accepted | Nov 2025 | High |
| 003 | MATL Composite Trust Scoring (PoGQ + TCDM + Entropy) | ✅ Accepted | Nov 2025 | High |
| 004 | Holochain + PostgreSQL Hybrid Approach | ✅ Accepted | Oct 2025 | Medium |
| 005 | Breaking the 33% BFT Barrier via Reputation-Weighting | ✅ Accepted | Nov 2025 | High |
Superseded Decisions¶
| ADR | Title | Status | Superseded By | Date |
|---|---|---|---|---|
| (none yet) | - | - | - | - |
Creating a New ADR¶
1. Use the Template¶
Copy the ADR template to create a new ADR:
2. Fill in the Sections¶
- Title: Short, descriptive title (< 50 chars)
- Status: Proposed | Accepted | Deprecated | Superseded
- Context: What problem are we solving? Why now?
- Decision: What did we decide to do?
- Consequences: What are the positive and negative outcomes?
- Alternatives Considered: What else did we evaluate?
3. Number Sequentially¶
ADRs are numbered sequentially (001, 002, 003...). Check the index above for the next number.
4. Submit for Review¶
- Create a new ADR file
- Submit a PR with the ADR
- Discuss in PR comments
- Update status to "Accepted" when merged
ADR Lifecycle¶
┌─────────────┐
│ Proposed │ ← Initial draft
└──────┬──────┘
│
▼
┌─────────────┐
│ Accepted │ ← Merged and active
└──────┬──────┘
│
├─────────────┐
▼ ▼
┌─────────────┐ ┌──────────────┐
│ Deprecated │ │ Superseded │
│ (no longer │ │ (replaced │
│ followed) │ │ by ADR-X) │
└─────────────┘ └──────────────┘
ADR Statuses¶
🟢 Proposed¶
Decision is drafted and under discussion. Not yet binding.
✅ Accepted¶
Decision is approved and should be followed. This is the "active" state.
⚠️ Deprecated¶
Decision is no longer recommended but not explicitly replaced. Use with caution.
🔄 Superseded¶
Decision is replaced by a newer ADR. See "Superseded By" field.
Best Practices¶
Keep ADRs Immutable¶
Once an ADR is accepted, do not edit it (except for minor typos/formatting). If a decision changes: - Create a new ADR that supersedes the old one - Update the old ADR's status to "Superseded" - Link the old and new ADRs bidirectionally
Be Concise¶
ADRs should be readable in < 10 minutes. If your ADR is getting long, consider: - Breaking it into multiple ADRs - Moving detailed analysis to a separate document
Focus on "Why"¶
The code shows "what" we built. The ADR explains "why" we built it that way.
Include Consequences¶
Be honest about trade-offs. Every decision has costs. Document them.
Link to Related Documents¶
- Reference architectural specs
- Link to research papers
- Connect to implementation PRs
Examples from Other Projects¶
Related Documentation¶
📍 Navigation: ← Architecture | ↑ Docs Home | Template →
Last Updated: November 10, 2025 ADR Count: 5 active, 0 superseded