ITSM/docs/adr/ADR-001-rust-axum-rewrite.md

1.2 KiB
Executable File
Raw Permalink Blame History

ADR-001: Rust/axum statt Python/Flask (In-Place-Rewrite)

Datum: 2026-07-15 · Status: Akzeptiert · Entscheider: Moe (Vorgabe), umgesetzt via Claude

Kontext

Die Flask-Version (single-file, ungepinnte Dependencies) hatte 8 Sicherheits- Review-Befunde; Nutzer-Vorgabe: alle Schwachstellen beseitigen, technisch aktuellster Stand, ITIL v3/v4, Umstellung auf Rust. Es existierte ein Parallelbau-Plan (AES projects/itsm-rust) mit späterem Cutover.

Entscheidung

Kompletter In-Place-Rewrite in Rust mit axum 0.7 + tokio-postgres/deadpool + askama — gleicher Stack wie forge-web (einheitliche Technologierichtung). Der Parallelbau-Plan wurde auf explizite Nutzer-Anweisung übersprungen.

Konsequenzen

  • Ein Binary, kompilierte Templates, keine Laufzeit-Dependency-Drift mehr.
  • Stack-Konsistenz mit Forge (Wartbarkeit, Wissenstransfer). Kein paralleles Rollback-System; kompensiert durch: identisches Schema (nur additiv migriert), Werkzeug-Hash-Kompatibilität (ADR-003), E2E-Tests vor Push, Compose-Backup als Rollback-Punkt. Lehre aus Produktion (Forensik phase-010 B4): Kompatibilitätsannahmen gegen ECHTE Produktionsdaten testen, nicht nur gegen eigene Vektoren.