mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-29 08:27:06 +00:00
docs(architecture): adjudicate the io-metrics leaf dependency on the s3-ops contract crate (#6683)
This commit is contained in:
+7
-2
@@ -115,8 +115,13 @@ default build (lifecycle:
|
||||
1. **Layers flow downward.** Server → Admin/App → Storage → ecstore → rio/io-core.
|
||||
No upward imports.
|
||||
|
||||
2. **Leaf crates have zero internal dependencies.** `config`, `credentials`, `crypto`,
|
||||
`io-metrics`, and `madmin` should depend only on external crates.
|
||||
2. **Leaf crates depend only on external crates, with one adjudicated exception.**
|
||||
`config`, `credentials`, `crypto`, `io-metrics`, and `madmin` take no internal
|
||||
dependency except `io-metrics → rustfs-s3-ops` (transitively `rustfs-s3-types`),
|
||||
a pure contract crate with no I/O and no global state. Adjudicated in
|
||||
rustfs/backlog#1834 and pinned by the leaf allowlist in
|
||||
`scripts/check_architecture_migration_rules.sh`; any other internal dependency
|
||||
fails the guard ([crate boundaries](docs/architecture/crate-boundaries.md)).
|
||||
- ✅ RESOLVED: the historical `utils → config` and `common → filemeta`/`madmin`
|
||||
edges were removed; do not reintroduce them (see Known Structural Issues).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user