Back to Rustfs

RustFS Architecture Evolution

docs/architecture/overview.md

1.0.0-beta.82.3 KB
Original Source

RustFS Architecture Evolution

This document set tracks the architecture migration from rustfs/backlog#660.

Baseline

  • Baseline branch: upstream/main
  • Baseline commit: 61f0dfbc40f748be313be84d834d8259cf3e19c9
  • Baseline title: fix(ecstore): invalidate wiped disk id cache (#3251)
  • First migration PR type: docs-only

Core Principle

Cut wrong dependency directions with directories and contracts first, migrate global state in small steps next, and split crates only after boundaries are stable. Storage hot-path behavior must not drift during this migration.

Architecture Documents

Phase Order

mermaid
flowchart LR
    G["Phase 0: Baseline and guardrails"]
    CFG["Phase 1a: Config model contract"]
    SEC["Phase 1: Security governance"]
    API["Phase 2: Storage API contracts"]
    RT["Phase 3: Runtime and lifecycle"]
    EC["Phase 4: ECStore internal layout"]
    CP["Phase 5: Cluster control plane"]
    EXT["Phase 6: Extension plane"]
    GS["Phase 7: Global-state reduction"]
    CR["Crate split evaluation"]

    G --> CFG
    G --> SEC
    G --> API
    G --> RT
    CFG --> EXT
    API --> EC
    RT --> GS
    EC --> CP
    EXT --> CR
    GS --> CR

The first implementation sequence is conservative:

  1. Record baseline and migration context.
  2. Establish PR and compatibility rules.
  3. Add dependency and loss-prevention checks in a separate ci-gate PR.
  4. Inventory ecstore::config::{Config, KV, KVS} before moving any code.