Overview
The Orchestration engine is a horizontally scalable service. Multiple engine worker processes can run on a single controller node or across multiple controller nodes, sharing work through a message queue. In convergence mode, the engine distributes individual resource operations across all available workers, enabling parallel provisioning of independent resources within a single stack.Engine Worker Architecture
Worker Configuration
Engine Workers Per Node
Theheat_engine_workers setting controls how many engine worker processes run on
each controller node. Each worker is an independent process that picks up tasks from
the message queue.
- XDeploy
- CLI
In XDeploy, navigate to Configuration → Services → Orchestration and adjust
the Engine Workers slider. A common starting point is 2–4 workers per CPU core
available on the controller node.
Worker Sizing Guidelines
| Controller vCPU Count | Recommended Engine Workers | Recommended API Workers |
|---|---|---|
| 4 vCPUs | 2 | 2 |
| 8 vCPUs | 4 | 4 |
| 16 vCPUs | 8 | 4 |
| 32+ vCPUs | 16 | 8 |
Convergence Mode
Convergence mode enables the engine to process independent resources in a stack concurrently across all available workers. This significantly reduces total stack creation time for large templates.| Mode | Behavior | Best For |
|---|---|---|
| Convergence (default) | Resources are processed in parallel by multiple workers | Large stacks (50+ resources), independent resource graphs |
| Non-convergence | Resources processed sequentially by a single worker | Simple stacks, environments where strict ordering is required |
Enable convergence in globals
Convergence mode requires the database to be accessible from all engine workers
simultaneously. Ensure your database connection pool is sized appropriately:
heat_db_max_pool_size should be at least heat_engine_workers * 2.Performance Tuning
| Setting | Default | Description |
|---|---|---|
heat_engine_workers | 4 | Engine worker processes per controller node |
heat_api_workers | 4 | API worker processes per controller node |
heat_db_max_pool_size | 10 | Max database connections per worker |
heat_db_max_overflow | 20 | Max overflow connections above the pool |
heat_rpc_response_timeout | 120 | Seconds before an RPC call is considered failed |
heat_max_stacks_per_tenant | 100 | Per-project stack limit |
heat_max_resources_per_stack | 1000 | Per-stack resource limit |
Monitoring Engine Health
List active engine services
status: up:
Next Steps
Configuration
Full configuration reference for the Orchestration service
Security
Trust-based authorization and policy configuration
Architecture
Engine internals and dependency resolution design
Admin Troubleshooting
Resolve engine worker failures and performance degradation