# Worker and stream settings

Every worker and stream settings field served by the server configuration types.

These settings control worker service policy, supervised processes, dispatch, transcript commits and live streams. Omitted supervision means the server supervises no workers.

## Worker registration

- `worker.heartbeat_window`: Milliseconds. Default 30000, advertised in registration acknowledgements. Set an activity heartbeat policy for loss detection and an activity timeout to bound its runtime.
- `worker.queue_service`: Queue service policy and optional clocks, with ordered overrides. Absent uses strict policy.


## Queue service

- `worker.queue_service.default_policy`: strict (default) refuses an unserved queue; durable_pending persists a wait for a compatible worker. Override per queue when needed.
- `worker.queue_service.overrides`: Ordered namespace and task-queue policy entries. The first matching entry wins; an omitted namespace matches every namespace.
- `worker.queue_service.service_availability_deadline`: Optional positive milliseconds to wait for a compatible worker to exist under strict policy. Absent is unbounded. Structural unservability still refuses immediately.
- `worker.queue_service.schedule_to_start_timeout`: Optional positive milliseconds for handing work to an existing compatible worker. Absent makes one attempt.


## Queue overrides

- `worker.queue_service.overrides.namespace`: Optional namespace filter. Omitted matches every namespace.
- `worker.queue_service.overrides.task_queue`: Required queue name matched by this override.
- `worker.queue_service.overrides.policy`: strict or durable_pending for this queue.


## Supervision

- `worker_supervision.restart_backoff_initial_ms`: Required positive first restart delay. No default.
- `worker_supervision.restart_backoff_max_ms`: Required delay ceiling, at least the initial delay. No default.
- `worker_supervision.restart_backoff_multiplier`: Required growth factor, at least one. No default.
- `worker_supervision.restart_window_ms`: Required positive sliding window over which restarts are counted. No default.
- `worker_supervision.max_restarts_per_window`: Required positive restart allowance per window. Exhaustion leaves the instance Failed. No default.
- `worker_supervision.stop_grace_ms`: Required positive stop grace. A stop can spend it after SIGTERM and again draining output after SIGKILL. No default.


## Outbox

- `outbox.enabled`: Default false in typed config. Commissions durable dispatch. Requires a durable store; the starter file enables it.
- `outbox.poll_interval_ms`: Positive claim-sweep cadence when enabled. Merged default 20 milliseconds.
- `outbox.batch_size`: Positive rows claimed per sweep. Merged default 16.
- `outbox.max_attempts`: Positive dispatch attempts before a row is dead-lettered. Merged default 5.
- `outbox.backoff_base_ms`: Positive first retry delay. Merged default 50 milliseconds.
- `outbox.backoff_multiplier`: Retry growth factor, at least one. Merged default 2.
- `outbox.backoff_max_ms`: Retry delay ceiling, at least the base. Merged default 1000 milliseconds.
- `outbox.reconcile_interval_ms`: Optional positive stale-claim sweep cadence. Requires reconcile_stale_after_ms. Omit both to leave live reconciliation disabled.
- `outbox.reconcile_stale_after_ms`: Optional positive age of a stranded claim. Requires reconcile_interval_ms; re-arming preserves the attempt count.
- `outbox.transport`: liminal in the default build; grpc without the liminal-transport feature. Selecting an unavailable transport refuses boot.
- `outbox.liminal_listen_address`: Required inbound worker listener address when enabled with liminal transport. Ignored with gRPC transport.
- `outbox.liminal_max_connection_outbound_bytes`: Optional positive per-connection dispatch buffer ceiling. Absent uses liminal's 4 MiB default. An unservable oversized dispatch fails by name without retry.


## Transcript storage

- `observability.max_event_bytes`: Positive retained transcript-event size ceiling. Default 262144 bytes; larger events are truncated before persistence.
- `observability.max_stream_events`: Positive retained event count per workflow/activity/attempt stream. Default 20000. At the cap a marker is kept and later events are live-only.
- `observability.max_batch_events`: Required positive maximum events per transcript commit. No typed default. Boot heals an omitted file value to 64 and preserves the previous file.
- `observability.max_batch_hold_ms`: Required nonnegative milliseconds a transcript batch may remain uncommitted. Zero commits the available batch immediately. Boot heals an omitted file value to 200.


## WebSocket

- `websocket.outbound_buffer_bound`: Per-connection outbound queue capacity. Default 32.
- `websocket.event_broadcast_capacity`: Positive global workflow live-event broadcast capacity. Merged default 256; size for all namespaces together.
- `websocket.cluster_broadcast_capacity`: Positive cluster-topology broadcast capacity. Merged default 64.


## MCP

- `mcp.enabled`: Default false. Enables public /mcp on the existing HTTP listener. The assistant conversation route is separate.
- `mcp.allowed_origins`: Exact browser origins allowed to call public MCP. Default empty refuses all Origin-bearing clients; clients without Origin are unaffected.
- `mcp.discover_ttl_ms`: Discovery result freshness hint. Default 60000 milliseconds.
- `mcp.tools_list_ttl_ms`: Tool-list freshness hint. Default 300000 milliseconds.
- `mcp.task_poll_interval_ms`: Positive client task-poll hint. Default 1000 milliseconds. It does not create a task lifetime.


Read [configuration discovery and the starter file](/aion/reference/configuration/).
