diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index f2b887f..30dbca6 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -11,65 +11,65 @@ ```mermaid flowchart TB subgraph Client["Client Layer"] - CLI[CLI Commands
resolve, emerge, sync, search, info] - GRPC_CLIENT[gRPC Client] + CLI["CLI: resolve, emerge, sync, search, info"] + GRPC_CLIENT["gRPC Client"] end subgraph Daemon["Daemon Layer"] - GRPC_SERVER[gRPC Server
unix:///var/run/grpm.sock] - REST_API[REST API
unix:///var/run/grpm-rest.sock] - JOB_QUEUE[Job Queue
conflict detection] - WORKERS[Worker Pool] + GRPC_SERVER["gRPC Server (unix socket)"] + REST_API["REST API (unix socket)"] + JOB_QUEUE["Job Queue + conflict detection"] + WORKERS["Worker Pool"] end subgraph Application["Application Layer"] - PKG_SERVICE[Package Service] + PKG_SERVICE["Package Service"] end subgraph Domain["Domain Layer"] - RESOLVER[Dependency Resolver] - SAT[SAT Solver
gophersat] - PKG[Package Model
Version, Slot, Constraint] - ATOM[Atom Parser
PMS Section 8.3] - DEP_SERVICE[Dependency Service] + RESOLVER["Dependency Resolver"] + SAT["SAT Solver (gophersat)"] + PKG["Package Model: Version, Slot, Constraint"] + ATOM["Atom Parser (PMS 8.3)"] + DEP_SERVICE["Dependency Service"] end subgraph Build["Build Execution Layer"] - EXECUTOR[Ebuild Executor
phase dispatch] - INTERPRETER[Bash Interpreter
mvdan.cc/sh] - COMMAND_MAP[Command Map
~160 Go helpers] - METADATA[Metadata Evaluator
Go + native bash] - ECLASS[Eclass System
dynamic loading] - DISTFILE[Distfile Service
SRC_URI resolution] - SANDBOX[Sandbox
namespace isolation] - PRIVILEGE[Privilege Manager
portage user] + EXECUTOR["Ebuild Executor (phase dispatch)"] + INTERPRETER["Bash Interpreter (mvdan.cc/sh)"] + COMMAND_MAP["Command Map (~160 Go helpers)"] + METADATA["Metadata Evaluator (Go + native bash)"] + ECLASS["Eclass System (dynamic loading)"] + DISTFILE["Distfile Service (SRC_URI resolution)"] + SANDBOX["Sandbox (namespace isolation)"] + PRIVILEGE["Privilege Manager (portage user)"] end subgraph Infrastructure["Infrastructure Layer"] - REPO[Repository
Portage / Mock / Cached] - SYNC_MOD[Sync Module
rsync / git+GPG] - FETCH[Fetch Module
mirror failover] - INSTALL[Install Engine
merge / unmerge] - BINPKG[Binary Packages
GPKG / TBZ2] - STATE[System State
VarDB] - SNAPSHOT[Snapshot Manager
Btrfs / ZFS] - CACHE[Metadata Cache
SQLite + md5-cache] + REPO["Repository: Portage, Mock, Cached"] + SYNC_MOD["Sync: rsync, git+GPG"] + FETCH["Fetch: mirror failover"] + INSTALL["Install: merge, unmerge"] + BINPKG["Binary Packages: GPKG, TBZ2"] + STATE["System State (VarDB)"] + SNAPSHOT["Snapshot Manager: Btrfs, ZFS"] + CACHE["Metadata Cache: SQLite, md5-cache"] end subgraph Config["Configuration Layer"] - MAKE_CONF[Config Loader
make.conf] - PROFILE[Profile System
USE defaults, masks] - SETS[Package Sets
@world, @system] - MASK[Mask Manager
package.mask, keywords] - VIRTUAL[Virtual Providers
virtual/* resolution] + MAKE_CONF["Config Loader (make.conf)"] + PROFILE["Profile System (USE, masks)"] + SETS["Package Sets (@world, @system)"] + MASK["Mask Manager (keywords)"] + VIRTUAL["Virtual Providers"] end subgraph External["External Systems"] - PORTAGE_TREE[Portage Tree
/var/db/repos/gentoo] - MIRRORS[Distfile Mirrors] - BINHOST[Binary Host] - FS[File System
target root] - BASH[/bin/bash
native fallback] + PORTAGE_TREE["Portage Tree"] + MIRRORS["Distfile Mirrors"] + BINHOST["Binary Host"] + FS["File System (target root)"] + NATIVE_BASH["Native bash (optional backend)"] end CLI --> GRPC_CLIENT @@ -96,7 +96,7 @@ flowchart TB INTERPRETER --> COMMAND_MAP INTERPRETER --> ECLASS METADATA --> INTERPRETER - METADATA --> BASH + METADATA --> NATIVE_BASH ECLASS --> REPO REPO --> CACHE