Architecture Decision Records (ADRs)¶
Numbered, immutable records of significant architectural decisions.
Format¶
Each ADR is a markdown file: adr-NNN-short-title.md
# ADR-NNN: Short Title
**Status:** Proposed | Accepted | Deprecated | Superseded by ADR-XXX
**Date:** YYYY-MM-DD
**Decision Makers:** [names]
## Context
What is the issue we're seeing that motivates this decision?
## Decision
What we decided to do.
## Consequences
What becomes easier? What becomes harder? What are the trade-offs?
## Alternatives Considered
What other options did we evaluate? Why were they rejected?
Inherited ADRs (from AgenticAI-app)¶
Three ADRs from the AgenticAI-app repository apply directly to Finnest and have been copied here. They represent decisions made during the lead-up to Finnest that continue to apply:
| ADR | Title | Why It Applies to Finnest |
|---|---|---|
| ADR-0004 | Maximum Portability | No AWS/Cloudflare service lock-in. Applies identically to Finnest — Elixir/Phoenix deployed via standard Docker + Kamal, PostgreSQL not Aurora, S3-compatible not DynamoDB. |
| ADR-0010 | Australian Data Residency for AI Providers | Bedrock ap-southeast-2 / Vertex australia-southeast1 only. Foundation for Finnest IRAP strategy — Bedrock Sydney for AI. |
| ADR-0011 | Elixir/Phoenix Migration | This is the genesis decision for Finnest. Documents why AgenticAI-app will be superseded by an Elixir/Phoenix platform. |
Finnest ADRs (all Accepted as of 2026-04-16)¶
Formal records of decisions made in the brainstorming sessions, generated as part of the /architecture workflow output:
- ADR-001-F: Adopt Elixir/Phoenix on BEAM/OTP as primary stack (formalises inherited ADR-0011)
- ADR-002-F: Supervised Modular Monolith pattern (21 OTP apps)
- ADR-003-F: Three-tier AI agent architecture (Conversational/Workflow/Autonomous)
- ADR-004-F: MCP at every domain boundary
- ADR-005-F: Event-driven cross-domain communication
- ADR-006-F: Hexagonal ports for all external integrations
- ADR-007-F: Three-layer IRAP architecture (AWS + Go proxy + Elixir)
- ADR-008-F: Flutter mobile (one app, four roles)
- ADR-009-F:
KeyPay integration for award interpretation (Phase 1)— Superseded by ADR-016-F - ADR-010-F: Strangler Fig migration from ASG Central v2
- ADR-011-F: Compliance auto-blocking as architectural constraint
- ADR-012-F: Adopt all 365 competitor features, prioritise by build order
- ADR-013-F: Engineering philosophy — follow 42 Commandments for lean AI-assisted development
- ADR-014-F: Infrastructure reuse — co-deploy Finnest on existing AgenticAI-app hosts; Postgres alongside MySQL; Finnest subdomains in
agentic-ai.auzone - ADR-015-F: Git worktree development flow — sibling worktrees,
FINNEST_PLANNINGenv var, sprint-status lives in planning repo - ADR-016-F: Award interpretation — Phase 1 ports 10–20 active v2 Modern Awards, Phase 2 builds native engine over Fair Work Commission MAPD API (supersedes ADR-009-F)
Numbering Convention¶
- Inherited ADRs (from AgenticAI-app): Keep original numbering (
adr-0004,adr-0010,adr-0011) - Finnest-specific ADRs: Use suffix
-Fto distinguish (adr-001-F,adr-002-F, etc.)
This prevents collisions if AgenticAI-app creates new ADRs independently, and makes the origin clear at a glance.
Relationship to Other Documents¶
- 42-COMMANDMENTS.md — Philosophical foundation. Every ADR should be consistent with the Commandments.
- 10-GUARDRAILS.md — Enforcement matrix. ADRs define decisions; guardrails enforce them.
- brainstorms/ — Decision discussions. ADRs formalise what brainstorms decide.