Skip to content

Architecture Decision Records

Architecture Decision Records (ADRs) document important architectural decisions made throughout the project. Each ADR captures:

  • The context and problem statement
  • The decision made
  • The rationale behind the decision
  • Consequences and trade-offs

An ADR is a short document that captures a significant architectural decision, along with its context and consequences. ADRs help maintain a record of why certain architectural choices were made, making it easier for future developers to understand the reasoning behind the system design.

When creating a new ADR, use the following template:

---
title: ADR-XXX: [Short Title]
description: [Brief description]
---
## Status
[Proposed | Accepted | Deprecated | Superseded]
## Context
[Describe the issue motivating this decision]
## Decision
[Describe the change that you're proposing or have made]
## Consequences
[What becomes easier or more difficult to do because of this change]

Reading order (narrative thread): Foundation (001–003) → Engine pattern (004) → Engine implementation in Rust (005) → Domain and tooling (006, 008) → Project and AI workflow (007, 009).

ADRTitleStatus
ADR-001Licensing StrategyAccepted
ADR-002OS Building Tool SelectionAccepted
ADR-003Deployment & OTA Update StrategyAccepted
ADR-004Engine ArchitectureAccepted
ADR-005Runtime Language Selection (Rust)Accepted
ADR-006Extension and Plugin ArchitectureAccepted
ADR-007Project Management StrategyAccepted
ADR-008Workspace Layout for Hexagonal EngineAccepted
ADR-009AI Context and Workflow StrategyAccepted