2.3 KiB
2.3 KiB
Fester Cluster Build System — Cheatsheet
🧠 Core Concept
A distributed, DAG-driven build execution system with:
- real-time scheduling
- node-aware load balancing
- thermal + policy constraints
- cache-aware execution
- deterministic replay/debugging
🧩 System Components
1. Scheduler
Chooses best node per action using:
- CPU load
- temperature
- policy rules
- historical intelligence feedback
2. Pipeline Engine
Executes DAG actions sequentially or step-debugged.
Supports:
- live execution
- interactive stepping
- replay mode
3. Timeline Store
Immutable event log of entire system.
Used for:
- replay
- debugging
- autopsy analysis
4. Failure System
Detects and propagates failure:
- backward → root cause candidates
- forward → downstream impact
5. Critical Path Analyzer
Identifies bottleneck chain in DAG execution.
6. Cache Layer
Supports:
- distributed artifact reuse
- MinIO backend
- future: Btrfs/QCOW2 snapshot acceleration
7. Debugger Mode
Interactive execution control:
- pause
- step
- resume
- scheduler preview before execution
🧭 Execution Flow
- Build graph generated from spec
- Scheduler selects node per action
- Timeline records decision
- Executor runs action on node
- Events streamed to UI
- Failures propagate through DAG
- Optional debugger intercepts execution
📡 Event Types
nodepipelineschedule_decisionfailure_propagationdebugger_preview
🖥 UI Modes
Live Mode
- real-time DAG rendering
- node state updates
Debug Mode
- step execution
- scheduler inspection
- manual control
Autopsy Mode
- failure root cause analysis
- dependency tracing
- critical path overlay
⚙️ Node Selection Model
Score-based weighted system:
- CPU availability
- thermal headroom
- policy constraints
- historical instability penalties
🧪 Execution Backends (planned)
- distcc
- LXC
- libvirt
- native execution
- cross-compilation toolchains
📦 Cache Strategy
- local ccache
- shared MinIO cache
- future: Btrfs/QCOW2 snapshot acceleration
🔐 Design Principle
The system must always be replayable, explainable, and deterministic.
No hidden state. No opaque scheduling. Everything is observable.