Decision Log
We document significant architectural decisions as Architecture Decision Records (ADRs). Each ADR captures the context, the options considered, the decision made, and the trade-offs accepted.ADR-001: Smithy as API IDL
Why we chose Smithy over OpenAPI-first or hand-written contracts as the single source of truth.
ADR-002: Rust + Actix-web
Why Rust over Go/Node for the backend, and why Actix-web + Diesel over Axum or SQLx.
ADR-003: JWT Auth Design
Token rotation, OTP hashing, device-level sessions, and the stateless access token approach.
Decision Summary Table
| # | Decision | Status | Date |
|---|---|---|---|
| ADR-001 | Smithy IDL as API source of truth | Accepted | 2025-Q1 |
| ADR-002 | Rust + Actix-web + Diesel + PostgreSQL | Accepted | 2025-Q1 |
| ADR-003 | JWT stateless auth with token rotation | Accepted | 2025-Q1 |
| ADR-004 | Async wallet provisioning with retry worker | Accepted | 2025-Q1 |
| ADR-005 | No OpenAPI in Smithy codegen path | Accepted | 2025-Q1 |