fester/CHEATSHEET.md

154 lines
2.3 KiB
Markdown

# 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
1. Build graph generated from spec
2. Scheduler selects node per action
3. Timeline records decision
4. Executor runs action on node
5. Events streamed to UI
6. Failures propagate through DAG
7. Optional debugger intercepts execution
---
## 📡 Event Types
- `node`
- `pipeline`
- `schedule_decision`
- `failure_propagation`
- `debugger_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.