# Process Host _Path: en/system/process-host_ ## Table of Contents - Process Host ## 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. ## Entry Kind | Kind | Description | |------|-------------| | `process.host` | Process execution host with scheduler | ## Configuration ```yaml - name: main_host kind: process.host host: workers: 8 queue_size: 1024 local_queue_size: 256 lifecycle: auto_start: true ``` | Field | Type | Default | Description | |-------|------|---------|-------------| | `workers` | int | NumCPU | Worker goroutines | | `queue_size` | int | 1024 | Global queue capacity | | `local_queue_size` | int | 256 | Per-worker local deque size | ## Scheduler 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 Types Process hosts execute entries of these kinds: | Kind | Description | |------|-------------| | `lua.process` | Source-based Lua process | | `lua.process.bytecode` | Precompiled Lua bytecode | Additional process kinds are planned for future releases. Processes run independently with their own context, communicate via messages, and are supervised for fault tolerance. ## Navigation Previous: Workflows (temporal/workflows) Next: Terminal (system/terminal)