Config schema: orchestrator
This page lists the fields for the top-level orchestrator: block — global limits on retries, transaction duration, and in-flight transaction capacity. For when retries fire, pool selection on re-entry, and client-visible outcomes, see Retries and transactions.
orchestrator
| Property | Value |
|---|---|
| Type | Mapping (object) |
| Required | No — defaults apply when the block is omitted |
| Location | Top-level key in the config file |
When orchestrator: is omitted, Conduit applies the defaults in the table below at parse time.
Block fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
max_attempts | integer | no | 3 | Maximum Route → Forward cycles for one client query (includes the first attempt). Must be ≥ 1 when set explicitly. |
max_txn_duration_ms | integer | no | 5000 | Wall-clock limit for the whole transaction from start through Send or drop. Checked before each Route. |
txn_table_capacity | integer | no | 1024 | Capacity of the in-flight transaction table on the datapath — bounds concurrent queries being processed, not per-query retry count. |
How limits interact
Conduit checks max_attempts and max_txn_duration_ms before each Route. A retry from Response rules re-enters at Route only while both limits allow and the target pool still has an unused backend.
When a limit is exceeded (or the pool is exhausted), Conduit typically sets SERVFAIL and moves to Send instead of forwarding again — see Retries and transactions — What the client sees when limits hit.
txn_table_capacity is independent of max_attempts: it caps how many transactions the datapath tracks at once under load. See Runtime and concurrency — Worker counts and limits.
Reload and overlay
| Change | Effect |
|---|---|
Edit orchestrator: on disk + reload |
New limits apply to later queries — no process restart required |
conduitctl apply patch including orchestrator: |
Replaces the file-layer orchestrator: section in the overlay when present; hot for new queries after successful apply |
In-flight transactions keep the limits they started under.
Validation summary
| Rule | Error if violated |
|---|---|
max_attempts ≥ 1 when orchestrator: present |
orchestrator.max_attempts must be >= 1 |
Validate with conduitctl validate --file ….
Example configuration
orchestrator:
max_attempts: 5
max_txn_duration_ms: 8000
txn_table_capacity: 2048
Declarative retry example using defaults: Retries and transactions — Declarative examples.
Related topics
- Retries and transactions —
retry,set_retry_pool, pool exhaustion - Rules and actions — response-hook retry actions
- Architecture and packet path — Retries and re-entry
- Built-in metrics —
conduit_retries_total - Minimal configuration — Defaults
- Config schema overview