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).

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