Worker Nodes and the Server Work Queue
Applies to IZ Suite Server 26.3.1 and later.
A single-container installation (
FALCON_MODE=all) needs no additional configuration: a worker runs inside the same container. This page is for administrators who want to scale background processing or understand how scheduled server tasks run
Overview
Up to version 1.4.x, background server tasks such as notifications, archival and vulnerability matching ran as in-process schedulers on the IZ Suite server. From 26.3.1 these tasks are placed on a server work queue in the database and executed by workers:
One IZ Suite server node is elected master. On every schedule tick the master enqueues one work item per tenant for each background task.
Workers claim work items from the queue and run them. A worker can run inside a server container or in a dedicated worker container. Any number of workers can share the queue; an item is never claimed by two workers at once.
Every item records who claimed it, when it ran, its outcome and a full log transcript, visible under
Audit→Scheduler Audit Logs.
Background Tasks Executed by Workers
Allocate Agent Workers Handler
Assigns pending job executions to free agent workers, round-robin across tenants. Tenants with an expired license are skipped.
Every 10 seconds
Notification Handler
Delivers pending Email, Slack and Web notifications.
Every 15 seconds
User Subscription Notification Handler
Matches new events to user subscriptions and creates the notifications to deliver.
Every 30 seconds
Health Check Category Status Handler
Recomputes IZ Pulse category and status-page status and raises status-page notifications.
Every 30 seconds
Asset Deprecation Handler
Re-evaluates IZ Lens deprecations against the latest scans when deprecation rules or scans changed.
Every 30 seconds
Vulnerability Handler
Re-matches IZ Lens vulnerabilities against scanned dependencies when vulnerability data or scans changed.
Every 30 seconds
Reset Stale Workers And Jobs Handler
Resets agent workers and jobs that stopped reporting so their work can be re-dispatched.
Every 5 minutes
Maintenance Window Handler
Opens and closes IZ Pulse maintenance windows and sends the related notifications.
Hourly
Record Archival Handler
Applies the Archival Policies setting. See Records Archival.
Daily at 23:00 server time
Seed Metadata Handler
Downloads the Integral Zone seed catalogue and applies new built-in rules, profiles, dashboards, vulnerabilities, deprecations, automation tasks and MCP tools.
Every 12 hours, at server start, and on demand from Global Settings → Seed Data
Compliance Validation Handler
Recalculates IZ Compliance scores for tenants with the Compliance module.
1st and 15th of each month at midnight
If a task is still running when its next tick arrives, no second item is queued for that tenant. Work is therefore never duplicated by a slow run.
Deployment Modes
The container image starts different components depending on FALCON_MODE:
FALCON_MODE
Starts
Use
all
Database migration, API, web UI (port 80) and one worker
Default. Single-container and small cluster installations.
api
Database migration and API
Split deployments where the web UI is served by separate web containers.
web
Web UI only
Split deployments.
worker
One worker process only
Dedicated background-processing node. Exposes no port and serves no requests.
A worker container needs the same DATABASE_URL as the server containers, and the same .env values if you override any. It does not run database migrations, so start or upgrade the all or api container first; the API container refuses to start on a partially migrated schema and prints recovery instructions in its log.
Worker Node Configuration
The behaviour of all workers is controlled by the global setting Worker Node Configuration on the platform tenant.
Navigate to
Global Settings→Settings.Search for
Worker Node Configurationand clickEdit.
WORKER_CONCURRENCY
10
Number of work items one worker process runs in parallel. Increase for throughput on large installations; decrease to reduce database load.
WORKER_POLL_INTERVAL_MS
10000
How long an idle worker waits before checking the queue again, in milliseconds.
WORKER_CLAIM_TIMEOUT_SECONDS
600
An item still marked Executing this long after it was claimed is considered abandoned (for example because the worker crashed) and is returned to Pending. Keep it longer than your slowest task, otherwise long-running tasks may run twice.
WORKER_RECLAIM_INTERVAL_MS
60000
How often each worker checks for abandoned items, in milliseconds.
START_WORKERS_ON_MASTER
true
Whether worker loops are started inside server containers. Leave it at true. Setting it to false also prevents dedicated worker containers from starting their loops, and no background task runs.
Changes to WORKER_CONCURRENCY, WORKER_POLL_INTERVAL_MS and the timeouts take effect when worker processes are restarted. Restart dedicated worker containers, and restart the server containers (or toggle START_WORKERS_ON_MASTER off, save, on, save) for in-process workers.
Master Election
Every server node (
allorapi) sends a heartbeat every 10 seconds. A node whose heartbeat is older thanFALCON_SERVER_KEEP_ALIVE_SECONDS(default 25 seconds) is markedSTOPPED.If the current master's heartbeat is stale, the next node to send a heartbeat becomes master. Election uses a database lock, so exactly one node is master at any time.
Only the master enqueues work items and runs the bootstrap on start-up: applying data migrations, adding new built-in records to every tenant and queueing seed data.
Workers do not take part in the election.
To see which node is master, open Audit → Server Audit Logs (platform tenant). The Is Master column shows Yes for the master, and View Execution Logs shows the election history of each node.
Sizing Guidance
Single tenant, up to a few hundred applications
FALCON_MODE=all, defaults.
Cluster of two or more server nodes
Keep in-process workers on every node.
Multi-tenant platform with many tenants
One or more dedicated worker containers per availability zone, WORKER_CONCURRENCY between 10 and 20, and WORKER_CLAIM_TIMEOUT_SECONDS raised if seed data or archival runs exceed 10 minutes.
Note that agent job executions (scans, health checks, reports) are still executed by agents, not by server workers. Add agent workers to scale scanning; add server workers to scale notifications, archival and platform housekeeping. See Agent.
Last updated
Was this helpful?

