Architecture Decision Checklist
Walk this checklist when bootstrapping or restructuring a Rust codebase so crate boundaries, errors, and tooling are deliberate before inertia sets in.
Search across all documentation pages
Walk this checklist when bootstrapping or restructuring a Rust codebase so crate boundaries, errors, and tooling are deliberate before inertia sets in.
rust-toolchain.toml committed.domain, api, infra crates vs single crate (justify in ADR).Cargo.lock committed for applications.rust-version = "1.97" in manifests; CI matrix matches.fmt --check, clippy -D warnings, documented in CONTRIBUTING.thiserror domain errors; map to HTTP in api crate.tracing JSON logs, health/readiness routes.Acceptable short-term; plan extraction ADR before second team joins.
Separate worker crate if analytics path; not inside request hot path by default.
Cargo features for compile-time; runtime flags via config service.
ARCHITECTURE.md links to this checklist completion date.
LICENSE, SECURITY.md, CODE_OF_CONDUCT in foundation tier.
Workspace members per binary sharing domain crate.
Add tonic crate member; REST and gRPC share domain.
Add JWT middleware decision before public launch.
tower Governor/Redis limiter at edge decision.
Staff engineer tick + date in ARCHITECTURE.md.
Stack versions: This page was written for Rust 1.97.0 (edition 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, and Polars 0.46+.
Reviewed by Chris St. John·Last updated Jul 16, 2026