Skip to content

Process Host

Process hosts manage Lua process execution using a work-stealing scheduler.

Each host schedules processes independently. Load is not distributed between hosts automatically.
KindDescription
process.hostProcess execution host with scheduler
- name: main_host
kind: process.host
host:
workers: 8
queue_size: 1024
local_queue_size: 256
lifecycle:
auto_start: true
FieldTypeDefaultDescription
workersintNumCPUWorker goroutines
queue_sizeint1024Global queue capacity
local_queue_sizeint256Per-worker local deque size

The scheduler uses work-stealing: each worker has a local deque, and idle workers steal from the global queue or other workers. This balances load automatically.

  • Workers execute processes concurrently
  • Global queue holds pending processes when all workers are busy
  • Local queues reduce contention by keeping work close to workers

Process hosts execute entries of these kinds:

KindDescription
process.luaSource-based Lua process
process.lua.bcPrecompiled Lua bytecode
process.wasmWebAssembly process (experimental)

Processes run independently with their own context, communicate via messages, and are supervised for fault tolerance.