Files
2026-07-13 13:32:57 +08:00

931 B

Supervisor

Node.js app that manages task execution containers. Receives work from the platform, starts Docker/Kubernetes containers, monitors execution, and reports results.

Key Directories

  • src/services/ - Core service logic
  • src/workloadManager/ - Container orchestration abstraction (Docker or Kubernetes)
  • src/workloadServer/ - HTTP server for workload communication (heartbeats, snapshots)
  • src/clients/ - Platform communication (webapp/coordinator)
  • src/env.ts - Environment configuration

Architecture

  • WorkloadManager: Abstracts Docker vs Kubernetes execution
  • SupervisorSession: Manages the dequeue loop with EWMA-based dynamic scaling
  • ResourceMonitor: Tracks CPU/memory during execution
  • PodCleaner/FailedPodHandler: Kubernetes-specific cleanup

Communicates with the platform via Socket.io and HTTP. Receives task assignments through the dequeue protocol from the webapp.