mirror of
https://github.com/rustfs/rustfs.git
synced 2026-09-06 12:09:12 +00:00
44 lines
1.8 KiB
Markdown
44 lines
1.8 KiB
Markdown
# RustFS Architecture Evolution
|
|
|
|
**Use this when:** you need the historical framing of the architecture-migration program or the phase order that the migration contracts assume.
|
|
**Source of truth:** [README.md](README.md) is the index of architecture documents; the per-topic contracts it lists are authoritative.
|
|
|
|
## Baseline
|
|
|
|
The architecture-migration program (`rustfs/backlog#660`) closed in 2026-07. Its original baseline commit predates the current `main` lineage and is no longer reachable from `main`; treat it as historical. The guardrails the program introduced remain enforced by `scripts/check_architecture_migration_rules.sh`.
|
|
|
|
## 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.
|
|
|
|
## Phase Order
|
|
|
|
Historical sequencing of the migration phases. All phases are closed; the diagram is kept because later documents refer to phase names.
|
|
|
|
```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 document index is [README.md](README.md). The ECStore facade boundary that the storage phases converged on is described in [ecstore-api-facade-inventory.md](ecstore-api-facade-inventory.md).
|