Architecture Decision Records¶
Architecture Decision Records (ADRs) capture significant choices and why we made them. Each ADR is short, dated, and immutable — when a decision is reversed, the new ADR supersedes the old one rather than editing it in place.
We use the Michael Nygard format: Context → Decision → Alternatives → Consequences.
Index¶
| ID | Title | Status | Date |
|---|---|---|---|
| ADR-0001 | Tenant isolation via PostgreSQL Row-Level Security | Accepted | 2026-05-02 |
| ADR-0002 | Python as the default scripting language | Accepted | 2026-05-02 |
| ADR-0003 | Prefect as the default ETL/ELT orchestrator | Accepted | 2026-05-02 |
| ADR-0004 | pgvector as the default vector store | Accepted | 2026-05-02 |
| ADR-0005 | LLM orchestration — hand-rolled over frameworks for most patterns | Accepted | 2026-05-02 |
| ADR-0006 | Anthropic Claude as the default LLM provider | Accepted | 2026-05-02 |
| ADR-0007 | Delta Lake as the default lakehouse table format | Accepted | 2026-05-03 |
| ADR-0008 | Modular Monolith as the default starting architecture | Accepted | 2026-05-03 |
| ADR-0009 | Temporal as the default workflow orchestration engine | Accepted | 2026-05-03 |
| ADR-0010 | Game engine selection policy (Godot default, Unity / Unreal criteria) | Accepted | 2026-05-03 |
| ADR-0011 | Rust as the default language for new systems and infrastructure code | Accepted | 2026-05-03 |
Writing a new ADR¶
- Copy
_template/adr-template.mdtodocs/decisions/NNNN-short-title.md(next sequential number) - Fill it in
- Open a pull request — at least one other architect must review
- Once merged, link it from any affected pattern under the "Related decisions" section