# Worker Daemon — Memory Module **Дата:** 2026-01-10 **Версія:** 1.0.0 --- ## 📋 Призначення Worker daemon запускається на кожній ноді і: 1. Реєструє capabilities в capability registry 2. Підписується на NATS consumers 3. Виконує jobs з перевіркою requirements 4. Звітує метрики та статуси --- ## 🔧 Deployment ### K8s (NODE1, NODE3) ```yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: memory-worker namespace: daarion spec: selector: matchLabels: app: memory-worker template: metadata: labels: app: memory-worker spec: containers: - name: worker image: memory-worker:latest env: - name: NODE_ID valueFrom: fieldRef: fieldPath: metadata.name - name: TIER value: "A" # або B, C - name: NATS_URL value: "nats://nats-client.nats:4222" - name: CAPABILITY_REGISTRY value: "postgresql://..." # або Consul ``` ### Docker (NODE2) ```bash docker run -d \ --name memory-worker \ -e NODE_ID=node2-macbook-m4 \ -e TIER=C \ -e NATS_URL=nats://nats-client.nats:4222 \ memory-worker:latest ``` --- ## 📊 Capability Registry Schema ### Postgres Table ```sql CREATE TABLE worker_capabilities ( node_id VARCHAR(255) PRIMARY KEY, tier VARCHAR(10) NOT NULL, region VARCHAR(50), trust_zone VARCHAR(50), hardware JSONB NOT NULL, capabilities JSONB NOT NULL, status VARCHAR(20) NOT NULL, last_heartbeat TIMESTAMP WITH TIME ZONE NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX idx_worker_capabilities_tier ON worker_capabilities(tier); CREATE INDEX idx_worker_capabilities_status ON worker_capabilities(status); CREATE INDEX idx_worker_capabilities_heartbeat ON worker_capabilities(last_heartbeat); ``` --- ## 🔄 Worker Flow 1. **Startup:** - Реєстрація capabilities в registry - Heartbeat (кожні 30s) 2. **Job Processing:** - Підписка на consumer (durable) - Перевірка `requirements` vs `capabilities` - Виконання job - ACK/NAK 3. **Metrics:** - Експорт метрик в Prometheus format - Відправка алертів в Matrix (якщо потрібно) --- ## 📁 Структура коду ``` worker-daemon/ ├── main.py # Entry point ├── registry.py # Capability registry (Postgres/Consul) ├── nats_client.py # NATS consumer ├── job_executor.py # Job execution ├── metrics.py # Prometheus metrics └── requirements.txt # Python dependencies ``` --- *Документ створено: 2026-01-10 19:30 CET*