Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Configuration Reference: common

65/65 parameters documented


backoff

Path: common.backoff

ParameterTypeDefaultDescription
backoff_multiplierf642.0Multiplier applied to the previous delay for exponential backoff calculations
default_backoff_secondsVec<u32>[1, 5, 15, 30, 60]Sequence of backoff delays in seconds for successive retry attempts
jitter_enabledbooltrueAdd random jitter to backoff delays to prevent thundering herd on retry
jitter_max_percentagef640.15Maximum jitter as a fraction of the computed backoff delay
max_backoff_secondsu323600Hard upper limit on any single backoff delay

common.backoff.backoff_multiplier

Multiplier applied to the previous delay for exponential backoff calculations

  • Type: f64
  • Default: 2.0
  • Valid Range: 1.0-10.0
  • System Impact: Controls how aggressively delays grow; 2.0 means each delay is double the previous

common.backoff.default_backoff_seconds

Sequence of backoff delays in seconds for successive retry attempts

  • Type: Vec<u32>
  • Default: [1, 5, 15, 30, 60]
  • Valid Range: non-empty array of positive integers
  • System Impact: Defines the retry cadence; after exhausting the array, the last value is reused up to max_backoff_seconds

common.backoff.jitter_enabled

Add random jitter to backoff delays to prevent thundering herd on retry

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When true, backoff delays are randomized within jitter_max_percentage to spread retries across time

common.backoff.jitter_max_percentage

Maximum jitter as a fraction of the computed backoff delay

  • Type: f64
  • Default: 0.15
  • Valid Range: 0.0-1.0
  • System Impact: A value of 0.15 means delays vary by up to +/-15% of the base delay

common.backoff.max_backoff_seconds

Hard upper limit on any single backoff delay

  • Type: u32
  • Default: 3600
  • Valid Range: 1-3600
  • System Impact: Caps exponential backoff growth to prevent excessively long delays between retries

cache

Path: common.cache

ParameterTypeDefaultDescription
analytics_ttl_secondsu3260Time-to-live in seconds for cached analytics and metrics data
backendString"redis"Cache backend implementation: ‘redis’ (distributed) or ‘moka’ (in-process)
default_ttl_secondsu323600Default time-to-live in seconds for cached entries
enabledboolfalseEnable the distributed cache layer for template and analytics data
template_ttl_secondsu323600Time-to-live in seconds for cached task template definitions

common.cache.analytics_ttl_seconds

Time-to-live in seconds for cached analytics and metrics data

  • Type: u32
  • Default: 60
  • Valid Range: 1-3600
  • System Impact: Analytics data is write-heavy and changes frequently; short TTL (60s) keeps metrics current

common.cache.backend

Cache backend implementation: ‘redis’ (distributed) or ‘moka’ (in-process)

  • Type: String
  • Default: "redis"
  • Valid Range: redis | moka
  • System Impact: Redis is required for multi-instance deployments to avoid stale data; moka is suitable for single-instance or DoS protection

common.cache.default_ttl_seconds

Default time-to-live in seconds for cached entries

  • Type: u32
  • Default: 3600
  • Valid Range: 1-86400
  • System Impact: Controls how long cached data remains valid before being re-fetched from the database

common.cache.enabled

Enable the distributed cache layer for template and analytics data

  • Type: bool
  • Default: false
  • Valid Range: true/false
  • System Impact: When false, all cache reads fall through to direct database queries; no cache dependency required

common.cache.template_ttl_seconds

Time-to-live in seconds for cached task template definitions

  • Type: u32
  • Default: 3600
  • Valid Range: 1-86400
  • System Impact: Template changes take up to this long to propagate; shorter values increase DB load, longer values improve performance

moka

Path: common.cache.moka

ParameterTypeDefaultDescription
max_capacityu6410000Maximum number of entries the in-process Moka cache can hold

common.cache.moka.max_capacity

Maximum number of entries the in-process Moka cache can hold

  • Type: u64
  • Default: 10000
  • Valid Range: 1-1000000
  • System Impact: Bounds memory usage; least-recently-used entries are evicted when capacity is reached

redis

Path: common.cache.redis

ParameterTypeDefaultDescription
connection_timeout_secondsu325Maximum time to wait when establishing a new Redis connection
databaseu320Redis database number (0-15)
max_connectionsu3210Maximum number of connections in the Redis connection pool
urlString"${REDIS_URL:-redis://localhost:6379}"Redis connection URL

common.cache.redis.connection_timeout_seconds

Maximum time to wait when establishing a new Redis connection

  • Type: u32
  • Default: 5
  • Valid Range: 1-60
  • System Impact: Connections that cannot be established within this timeout fail; cache falls back to database

common.cache.redis.database

Redis database number (0-15)

  • Type: u32
  • Default: 0
  • Valid Range: 0-15
  • System Impact: Isolates Tasker cache keys from other applications sharing the same Redis instance

common.cache.redis.max_connections

Maximum number of connections in the Redis connection pool

  • Type: u32
  • Default: 10
  • Valid Range: 1-500
  • System Impact: Bounds concurrent Redis operations; increase for high cache throughput workloads

common.cache.redis.url

Redis connection URL

  • Type: String
  • Default: "${REDIS_URL:-redis://localhost:6379}"
  • Valid Range: valid Redis URI
  • System Impact: Must be reachable when cache is enabled with redis backend

circuit_breakers

Path: common.circuit_breakers

component_configs

Path: common.circuit_breakers.component_configs

cache

Path: common.circuit_breakers.component_configs.cache

ParameterTypeDefaultDescription
failure_thresholdu325Failures before the cache circuit breaker trips to Open
success_thresholdu322Successes in Half-Open required to close the cache breaker

common.circuit_breakers.component_configs.cache.failure_threshold

Failures before the cache circuit breaker trips to Open

  • Type: u32
  • Default: 5
  • Valid Range: 1-100
  • System Impact: Protects Redis/Dragonfly operations; when tripped, cache reads fall through to database

common.circuit_breakers.component_configs.cache.success_threshold

Successes in Half-Open required to close the cache breaker

  • Type: u32
  • Default: 2
  • Valid Range: 1-100
  • System Impact: Low threshold (2) for fast recovery since cache failures gracefully degrade to database

messaging

Path: common.circuit_breakers.component_configs.messaging

ParameterTypeDefaultDescription
failure_thresholdu325Failures before the messaging circuit breaker trips to Open
success_thresholdu322Successes in Half-Open required to close the messaging breaker

common.circuit_breakers.component_configs.messaging.failure_threshold

Failures before the messaging circuit breaker trips to Open

  • Type: u32
  • Default: 5
  • Valid Range: 1-100
  • System Impact: Protects the messaging layer (PGMQ or RabbitMQ); when tripped, queue send/receive operations are short-circuited

common.circuit_breakers.component_configs.messaging.success_threshold

Successes in Half-Open required to close the messaging breaker

  • Type: u32
  • Default: 2
  • Valid Range: 1-100
  • System Impact: Lower threshold (2) allows faster recovery since messaging failures are typically transient

task_readiness

Path: common.circuit_breakers.component_configs.task_readiness

ParameterTypeDefaultDescription
failure_thresholdu3210Failures before the task readiness circuit breaker trips to Open
success_thresholdu323Successes in Half-Open required to close the task readiness breaker

common.circuit_breakers.component_configs.task_readiness.failure_threshold

Failures before the task readiness circuit breaker trips to Open

  • Type: u32
  • Default: 10
  • Valid Range: 1-100
  • System Impact: Higher than default (10 vs 5) because task readiness queries are frequent and transient failures are expected

common.circuit_breakers.component_configs.task_readiness.success_threshold

Successes in Half-Open required to close the task readiness breaker

  • Type: u32
  • Default: 3
  • Valid Range: 1-100
  • System Impact: Slightly higher than default (3) for extra confidence before resuming readiness queries

web

Path: common.circuit_breakers.component_configs.web

ParameterTypeDefaultDescription
failure_thresholdu325Failures before the web/API database circuit breaker trips to Open
success_thresholdu322Successes in Half-Open required to close the web database breaker

common.circuit_breakers.component_configs.web.failure_threshold

Failures before the web/API database circuit breaker trips to Open

  • Type: u32
  • Default: 5
  • Valid Range: 1-100
  • System Impact: Protects API database operations; when tripped, API requests receive fast 503 errors instead of waiting for timeouts

common.circuit_breakers.component_configs.web.success_threshold

Successes in Half-Open required to close the web database breaker

  • Type: u32
  • Default: 2
  • Valid Range: 1-100
  • System Impact: Standard threshold (2) provides confidence in recovery before restoring full API traffic

default_config

Path: common.circuit_breakers.default_config

ParameterTypeDefaultDescription
failure_thresholdu325Number of consecutive failures before a circuit breaker trips to the Open state
success_thresholdu322Number of consecutive successes in Half-Open state required to close the circuit breaker
timeout_secondsu3230Duration in seconds a circuit breaker stays Open before transitioning to Half-Open for probe requests

common.circuit_breakers.default_config.failure_threshold

Number of consecutive failures before a circuit breaker trips to the Open state

  • Type: u32
  • Default: 5
  • Valid Range: 1-100
  • System Impact: Lower values make the breaker more sensitive; higher values tolerate more transient failures before tripping

common.circuit_breakers.default_config.success_threshold

Number of consecutive successes in Half-Open state required to close the circuit breaker

  • Type: u32
  • Default: 2
  • Valid Range: 1-100
  • System Impact: Higher values require more proof of recovery before restoring full traffic

common.circuit_breakers.default_config.timeout_seconds

Duration in seconds a circuit breaker stays Open before transitioning to Half-Open for probe requests

  • Type: u32
  • Default: 30
  • Valid Range: 1-300
  • System Impact: Controls recovery speed; shorter timeouts attempt recovery sooner but risk repeated failures

global_settings

Path: common.circuit_breakers.global_settings

ParameterTypeDefaultDescription
metrics_collection_interval_secondsu3230Interval in seconds between circuit breaker metrics collection sweeps
min_state_transition_interval_secondsf645.0Minimum time in seconds between circuit breaker state transitions

common.circuit_breakers.global_settings.metrics_collection_interval_seconds

Interval in seconds between circuit breaker metrics collection sweeps

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: Controls how frequently circuit breaker state, failure counts, and transition counts are collected for observability

common.circuit_breakers.global_settings.min_state_transition_interval_seconds

Minimum time in seconds between circuit breaker state transitions

  • Type: f64
  • Default: 5.0
  • Valid Range: 0.0-60.0
  • System Impact: Prevents rapid oscillation between Open and Closed states during intermittent failures

database

Path: common.database

ParameterTypeDefaultDescription
urlString"${DATABASE_URL:-postgresql://localhost/tasker}"PostgreSQL connection URL for the primary database

common.database.url

PostgreSQL connection URL for the primary database

  • Type: String
  • Default: "${DATABASE_URL:-postgresql://localhost/tasker}"
  • Valid Range: valid PostgreSQL connection URI
  • System Impact: All task, step, and workflow state is stored here; must be reachable at startup

Environment Recommendations:

EnvironmentValueRationale
developmentpostgresql://localhost/taskerLocal default, no auth
production${DATABASE_URL}Always use env var injection for secrets rotation
testpostgresql://tasker:tasker@localhost:5432/tasker_rust_testIsolated test database with known credentials

Related: common.database.pool.max_connections, common.pgmq_database.url

pool

Path: common.database.pool

ParameterTypeDefaultDescription
acquire_timeout_secondsu3210Maximum time to wait when acquiring a connection from the pool
idle_timeout_secondsu32300Time before an idle connection is closed and removed from the pool
max_connectionsu3225Maximum number of concurrent database connections in the pool
max_lifetime_secondsu321800Maximum total lifetime of a connection before it is closed and replaced
min_connectionsu325Minimum number of idle connections maintained in the pool
slow_acquire_threshold_msu32100Threshold in milliseconds above which connection acquisition is logged as slow

common.database.pool.acquire_timeout_seconds

Maximum time to wait when acquiring a connection from the pool

  • Type: u32
  • Default: 10
  • Valid Range: 1-300
  • System Impact: Queries fail with a timeout error if no connection is available within this window

common.database.pool.idle_timeout_seconds

Time before an idle connection is closed and removed from the pool

  • Type: u32
  • Default: 300
  • Valid Range: 1-3600
  • System Impact: Controls how quickly the pool shrinks back to min_connections after load drops

common.database.pool.max_connections

Maximum number of concurrent database connections in the pool

  • Type: u32
  • Default: 25
  • Valid Range: 1-1000
  • System Impact: Controls database connection concurrency; too few causes query queuing under load, too many risks DB resource exhaustion

Environment Recommendations:

EnvironmentValueRationale
development10-25Small pool for local development
production30-50Scale based on worker count and concurrent task volume
test10-30Moderate pool; cluster tests may run 10 services sharing the same DB

Related: common.database.pool.min_connections, common.database.pool.acquire_timeout_seconds

common.database.pool.max_lifetime_seconds

Maximum total lifetime of a connection before it is closed and replaced

  • Type: u32
  • Default: 1800
  • Valid Range: 60-86400
  • System Impact: Prevents connection drift from server-side config changes or memory leaks in long-lived connections

common.database.pool.min_connections

Minimum number of idle connections maintained in the pool

  • Type: u32
  • Default: 5
  • Valid Range: 0-100
  • System Impact: Keeps connections warm to avoid cold-start latency on first queries after idle periods

common.database.pool.slow_acquire_threshold_ms

Threshold in milliseconds above which connection acquisition is logged as slow

  • Type: u32
  • Default: 100
  • Valid Range: 10-60000
  • System Impact: Observability: slow acquire warnings indicate pool pressure or network issues

execution

Path: common.execution

ParameterTypeDefaultDescription
environmentString"development"Runtime environment identifier used for configuration context selection and logging
step_enqueue_batch_sizeu3250Number of steps to enqueue in a single batch during task initialization

common.execution.environment

Runtime environment identifier used for configuration context selection and logging

  • Type: String
  • Default: "development"
  • Valid Range: test | development | production
  • System Impact: Affects log levels, default tuning, and environment-specific behavior throughout the system

common.execution.step_enqueue_batch_size

Number of steps to enqueue in a single batch during task initialization

  • Type: u32
  • Default: 50
  • Valid Range: 1-1000
  • System Impact: Controls step enqueueing throughput; larger batches reduce round trips but increase per-batch latency

mpsc_channels

Path: common.mpsc_channels

event_publisher

Path: common.mpsc_channels.event_publisher

ParameterTypeDefaultDescription
event_queue_buffer_sizeusize5000Bounded channel capacity for the event publisher MPSC channel

common.mpsc_channels.event_publisher.event_queue_buffer_size

Bounded channel capacity for the event publisher MPSC channel

  • Type: usize
  • Default: 5000
  • Valid Range: 100-100000
  • System Impact: Controls backpressure for domain event publishing; smaller buffers apply backpressure sooner

ffi

Path: common.mpsc_channels.ffi

ParameterTypeDefaultDescription
ruby_event_buffer_sizeusize1000Bounded channel capacity for Ruby FFI event delivery

common.mpsc_channels.ffi.ruby_event_buffer_size

Bounded channel capacity for Ruby FFI event delivery

  • Type: usize
  • Default: 1000
  • Valid Range: 100-50000
  • System Impact: Buffers events between the Rust runtime and Ruby FFI layer; overflow triggers backpressure on the dispatch side

overflow_policy

Path: common.mpsc_channels.overflow_policy

ParameterTypeDefaultDescription
log_warning_thresholdf640.8Channel saturation fraction at which warning logs are emitted

common.mpsc_channels.overflow_policy.log_warning_threshold

Channel saturation fraction at which warning logs are emitted

  • Type: f64
  • Default: 0.8
  • Valid Range: 0.0-1.0
  • System Impact: A value of 0.8 means warnings fire when any channel reaches 80% capacity

metrics

Path: common.mpsc_channels.overflow_policy.metrics

ParameterTypeDefaultDescription
saturation_check_interval_secondsu3230Interval in seconds between channel saturation metric samples

common.mpsc_channels.overflow_policy.metrics.saturation_check_interval_seconds

Interval in seconds between channel saturation metric samples

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: Lower intervals give finer-grained capacity visibility but add sampling overhead

pgmq_database

Path: common.pgmq_database

ParameterTypeDefaultDescription
enabledbooltrueEnable PGMQ messaging subsystem
urlString"${PGMQ_DATABASE_URL:-}"PostgreSQL connection URL for a dedicated PGMQ database; when empty, PGMQ shares the primary database

common.pgmq_database.enabled

Enable PGMQ messaging subsystem

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, PGMQ queue operations are disabled; only useful if using RabbitMQ as the sole messaging backend

common.pgmq_database.url

PostgreSQL connection URL for a dedicated PGMQ database; when empty, PGMQ shares the primary database

  • Type: String
  • Default: "${PGMQ_DATABASE_URL:-}"
  • Valid Range: valid PostgreSQL connection URI or empty string
  • System Impact: Separating PGMQ to its own database isolates messaging I/O from task state queries, reducing contention under heavy load

Related: common.database.url, common.pgmq_database.enabled

pool

Path: common.pgmq_database.pool

ParameterTypeDefaultDescription
acquire_timeout_secondsu325Maximum time to wait when acquiring a connection from the PGMQ pool
idle_timeout_secondsu32300Time before an idle PGMQ connection is closed and removed from the pool
max_connectionsu3215Maximum number of concurrent connections in the PGMQ database pool
max_lifetime_secondsu321800Maximum total lifetime of a PGMQ database connection before replacement
min_connectionsu323Minimum idle connections maintained in the PGMQ database pool
slow_acquire_threshold_msu32100Threshold in milliseconds above which PGMQ pool acquisition is logged as slow

common.pgmq_database.pool.acquire_timeout_seconds

Maximum time to wait when acquiring a connection from the PGMQ pool

  • Type: u32
  • Default: 5
  • Valid Range: 1-300
  • System Impact: Queue operations fail with timeout if no PGMQ connection is available within this window

common.pgmq_database.pool.idle_timeout_seconds

Time before an idle PGMQ connection is closed and removed from the pool

  • Type: u32
  • Default: 300
  • Valid Range: 1-3600
  • System Impact: Controls how quickly the PGMQ pool shrinks after messaging load drops

common.pgmq_database.pool.max_connections

Maximum number of concurrent connections in the PGMQ database pool

  • Type: u32
  • Default: 15
  • Valid Range: 1-500
  • System Impact: Separate from the main database pool; size according to messaging throughput requirements

common.pgmq_database.pool.max_lifetime_seconds

Maximum total lifetime of a PGMQ database connection before replacement

  • Type: u32
  • Default: 1800
  • Valid Range: 60-86400
  • System Impact: Prevents connection drift in long-running PGMQ connections

common.pgmq_database.pool.min_connections

Minimum idle connections maintained in the PGMQ database pool

  • Type: u32
  • Default: 3
  • Valid Range: 0-100
  • System Impact: Keeps PGMQ connections warm to avoid cold-start latency on queue operations

common.pgmq_database.pool.slow_acquire_threshold_ms

Threshold in milliseconds above which PGMQ pool acquisition is logged as slow

  • Type: u32
  • Default: 100
  • Valid Range: 10-60000
  • System Impact: Observability: slow PGMQ acquire warnings indicate messaging pool pressure

queues

Path: common.queues

ParameterTypeDefaultDescription
backendString"${TASKER_MESSAGING_BACKEND:-pgmq}"Messaging backend: ‘pgmq’ (PostgreSQL-based, LISTEN/NOTIFY) or ‘rabbitmq’ (AMQP broker)
default_visibility_timeout_secondsu3230Default time a dequeued message remains invisible to other consumers
naming_patternString"{namespace}_{name}_queue"Template pattern for constructing queue names from namespace and name
orchestration_namespaceString"orchestration"Namespace prefix for orchestration queue names
worker_namespaceString"worker"Namespace prefix for worker queue names

common.queues.backend

Messaging backend: ‘pgmq’ (PostgreSQL-based, LISTEN/NOTIFY) or ‘rabbitmq’ (AMQP broker)

  • Type: String
  • Default: "${TASKER_MESSAGING_BACKEND:-pgmq}"
  • Valid Range: pgmq | rabbitmq
  • System Impact: Determines the entire message transport layer; pgmq requires only PostgreSQL, rabbitmq requires a separate AMQP broker

Environment Recommendations:

EnvironmentValueRationale
productionpgmq or rabbitmqpgmq for simplicity, rabbitmq for high-throughput push semantics
testpgmqSingle-dependency setup, simpler CI

Related: common.queues.pgmq, common.queues.rabbitmq

common.queues.default_visibility_timeout_seconds

Default time a dequeued message remains invisible to other consumers

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: If a consumer fails to process a message within this window, the message becomes visible again for retry

common.queues.naming_pattern

Template pattern for constructing queue names from namespace and name

  • Type: String
  • Default: "{namespace}_{name}_queue"
  • Valid Range: string containing {namespace} and {name} placeholders
  • System Impact: Determines the actual PGMQ/RabbitMQ queue names; changing this after deployment requires manual queue migration

common.queues.orchestration_namespace

Namespace prefix for orchestration queue names

  • Type: String
  • Default: "orchestration"
  • Valid Range: non-empty string
  • System Impact: Used in queue naming pattern to isolate orchestration queues from worker queues

common.queues.worker_namespace

Namespace prefix for worker queue names

  • Type: String
  • Default: "worker"
  • Valid Range: non-empty string
  • System Impact: Used in queue naming pattern to isolate worker queues from orchestration queues

orchestration_queues

Path: common.queues.orchestration_queues

ParameterTypeDefaultDescription
step_resultsString"orchestration_step_results"Queue name for step execution results returned by workers
task_finalizationsString"orchestration_task_finalizations"Queue name for task finalization messages
task_requestsString"orchestration_task_requests"Queue name for incoming task execution requests

common.queues.orchestration_queues.step_results

Queue name for step execution results returned by workers

  • Type: String
  • Default: "orchestration_step_results"
  • Valid Range: valid queue name
  • System Impact: Workers publish step completion results here for the orchestration result processor

common.queues.orchestration_queues.task_finalizations

Queue name for task finalization messages

  • Type: String
  • Default: "orchestration_task_finalizations"
  • Valid Range: valid queue name
  • System Impact: Tasks ready for completion evaluation are enqueued here

common.queues.orchestration_queues.task_requests

Queue name for incoming task execution requests

  • Type: String
  • Default: "orchestration_task_requests"
  • Valid Range: valid queue name
  • System Impact: The orchestration system reads new task requests from this queue

pgmq

Path: common.queues.pgmq

ParameterTypeDefaultDescription
poll_interval_msu32500Interval in milliseconds between PGMQ polling cycles when no LISTEN/NOTIFY events arrive

common.queues.pgmq.poll_interval_ms

Interval in milliseconds between PGMQ polling cycles when no LISTEN/NOTIFY events arrive

  • Type: u32
  • Default: 500
  • Valid Range: 10-10000
  • System Impact: Lower values reduce message latency in polling mode but increase database load; in Hybrid mode this is the fallback interval

queue_depth_thresholds

Path: common.queues.pgmq.queue_depth_thresholds

ParameterTypeDefaultDescription
critical_thresholdi645000Queue depth at which the API returns HTTP 503 Service Unavailable for new task submissions
overflow_thresholdi6410000Queue depth indicating an emergency condition requiring manual intervention

common.queues.pgmq.queue_depth_thresholds.critical_threshold

Queue depth at which the API returns HTTP 503 Service Unavailable for new task submissions

  • Type: i64
  • Default: 5000
  • Valid Range: 1+
  • System Impact: Backpressure mechanism: rejects new work to allow the system to drain existing messages

common.queues.pgmq.queue_depth_thresholds.overflow_threshold

Queue depth indicating an emergency condition requiring manual intervention

  • Type: i64
  • Default: 10000
  • Valid Range: 1+
  • System Impact: Highest severity threshold; triggers error-level logging and metrics for operational alerting

rabbitmq

Path: common.queues.rabbitmq

ParameterTypeDefaultDescription
heartbeat_secondsu1630AMQP heartbeat interval for connection liveness detection
prefetch_countu16100Number of unacknowledged messages RabbitMQ will deliver before waiting for acks
urlString"${RABBITMQ_URL:-amqp://guest:guest@localhost:5672/%2F}"AMQP connection URL for RabbitMQ; %2F is the URL-encoded default vhost ‘/’

common.queues.rabbitmq.heartbeat_seconds

AMQP heartbeat interval for connection liveness detection

  • Type: u16
  • Default: 30
  • Valid Range: 0-3600
  • System Impact: Detects dead connections; 0 disables heartbeats (not recommended in production)

common.queues.rabbitmq.prefetch_count

Number of unacknowledged messages RabbitMQ will deliver before waiting for acks

  • Type: u16
  • Default: 100
  • Valid Range: 1-65535
  • System Impact: Controls consumer throughput vs. memory usage; higher values increase throughput but buffer more messages in-process

common.queues.rabbitmq.url

AMQP connection URL for RabbitMQ; %2F is the URL-encoded default vhost ‘/’

  • Type: String
  • Default: "${RABBITMQ_URL:-amqp://guest:guest@localhost:5672/%2F}"
  • Valid Range: valid AMQP URI
  • System Impact: Only used when queues.backend = ‘rabbitmq’; must be reachable at startup

system

Path: common.system

ParameterTypeDefaultDescription
default_dependent_systemString"default"Default system name assigned to tasks that do not specify a dependent system

common.system.default_dependent_system

Default system name assigned to tasks that do not specify a dependent system

  • Type: String
  • Default: "default"
  • Valid Range: non-empty string
  • System Impact: Groups tasks for routing and reporting; most single-system deployments can leave this as default

task_templates

Path: common.task_templates

ParameterTypeDefaultDescription
search_pathsVec<String>["config/tasks/**/*.{yml,yaml}"]Glob patterns for discovering task template YAML files

common.task_templates.search_paths

Glob patterns for discovering task template YAML files

  • Type: Vec<String>
  • Default: ["config/tasks/**/*.{yml,yaml}"]
  • Valid Range: valid glob patterns
  • System Impact: Templates matching these patterns are loaded at startup for task definition discovery

Generated by tasker-ctl docsTasker Configuration System

Configuration Reference: orchestration

91/91 parameters documented


orchestration

Root-level orchestration parameters

Path: orchestration

ParameterTypeDefaultDescription
enable_performance_loggingbooltrueEnable detailed performance logging for orchestration actors
shutdown_timeout_msu6430000Maximum time in milliseconds to wait for orchestration subsystems to stop during graceful shutdown

orchestration.enable_performance_logging

Enable detailed performance logging for orchestration actors

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Emits timing metrics for task processing, step enqueueing, and result evaluation; disable in production if log volume is a concern

orchestration.shutdown_timeout_ms

Maximum time in milliseconds to wait for orchestration subsystems to stop during graceful shutdown

  • Type: u64
  • Default: 30000
  • Valid Range: 1000-300000
  • System Impact: If shutdown exceeds this timeout, the process exits forcefully to avoid hanging indefinitely; 30s is conservative for most deployments

batch_processing

Path: orchestration.batch_processing

ParameterTypeDefaultDescription
checkpoint_stall_minutesu3215Minutes without a checkpoint update before a batch is considered stalled
default_batch_sizeu321000Default number of items in a single batch when not specified by the handler
enabledbooltrueEnable the batch processing subsystem for large-scale step execution
max_parallel_batchesu3250Maximum number of batch operations that can execute concurrently

orchestration.batch_processing.checkpoint_stall_minutes

Minutes without a checkpoint update before a batch is considered stalled

  • Type: u32
  • Default: 15
  • Valid Range: 1-1440
  • System Impact: Stalled batches are flagged for investigation or automatic recovery; lower values detect issues faster

orchestration.batch_processing.default_batch_size

Default number of items in a single batch when not specified by the handler

  • Type: u32
  • Default: 1000
  • Valid Range: 1-100000
  • System Impact: Larger batches improve throughput but increase memory usage and per-batch latency

orchestration.batch_processing.enabled

Enable the batch processing subsystem for large-scale step execution

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, batch step handlers cannot be used; all steps must be processed individually

orchestration.batch_processing.max_parallel_batches

Maximum number of batch operations that can execute concurrently

  • Type: u32
  • Default: 50
  • Valid Range: 1-1000
  • System Impact: Bounds resource usage from concurrent batch processing; increase for high-throughput batch workloads

decision_points

Path: orchestration.decision_points

ParameterTypeDefaultDescription
enable_detailed_loggingboolfalseEnable verbose logging of decision point evaluation including expression results
enable_metricsbooltrueEnable metrics collection for decision point evaluations
enabledbooltrueEnable the decision point evaluation subsystem for conditional workflow branching
max_decision_depthu3220Maximum depth of nested decision point chains
max_steps_per_decisionu32100Maximum number of steps that can be generated by a single decision point evaluation
warn_threshold_depthu3210Decision depth above which a warning is logged
warn_threshold_stepsu3250Number of steps per decision above which a warning is logged

orchestration.decision_points.enable_detailed_logging

Enable verbose logging of decision point evaluation including expression results

  • Type: bool
  • Default: false
  • Valid Range: true/false
  • System Impact: Produces high-volume logs; enable only for debugging specific decision point behavior

orchestration.decision_points.enable_metrics

Enable metrics collection for decision point evaluations

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Tracks evaluation counts, timings, and branch selection distribution

orchestration.decision_points.enabled

Enable the decision point evaluation subsystem for conditional workflow branching

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, all decision points are skipped and conditional steps are not evaluated

orchestration.decision_points.max_decision_depth

Maximum depth of nested decision point chains

  • Type: u32
  • Default: 20
  • Valid Range: 1-100
  • System Impact: Prevents infinite recursion from circular decision point references

orchestration.decision_points.max_steps_per_decision

Maximum number of steps that can be generated by a single decision point evaluation

  • Type: u32
  • Default: 100
  • Valid Range: 1-10000
  • System Impact: Safety limit to prevent decision points from creating unbounded step graphs

orchestration.decision_points.warn_threshold_depth

Decision depth above which a warning is logged

  • Type: u32
  • Default: 10
  • Valid Range: 1-100
  • System Impact: Observability: identifies deeply nested decision chains that may indicate design issues

orchestration.decision_points.warn_threshold_steps

Number of steps per decision above which a warning is logged

  • Type: u32
  • Default: 50
  • Valid Range: 1-10000
  • System Impact: Observability: identifies decision points that generate unusually large step sets

dlq

Path: orchestration.dlq

ParameterTypeDefaultDescription
enabledbooltrueEnable the Dead Letter Queue subsystem for handling unrecoverable tasks

orchestration.dlq.enabled

Enable the Dead Letter Queue subsystem for handling unrecoverable tasks

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, stale or failed tasks remain in their error state without DLQ routing

staleness_detection

Path: orchestration.dlq.staleness_detection

ParameterTypeDefaultDescription
batch_sizeu32100Number of potentially stale tasks to evaluate in a single detection sweep
detection_interval_secondsu32300Interval in seconds between staleness detection sweeps
dry_runboolfalseRun staleness detection in observation-only mode without taking action
enabledbooltrueEnable periodic scanning for stale tasks

orchestration.dlq.staleness_detection.batch_size

Number of potentially stale tasks to evaluate in a single detection sweep

  • Type: u32
  • Default: 100
  • Valid Range: 1-10000
  • System Impact: Larger batches process more stale tasks per sweep but increase per-sweep query cost

orchestration.dlq.staleness_detection.detection_interval_seconds

Interval in seconds between staleness detection sweeps

  • Type: u32
  • Default: 300
  • Valid Range: 30-3600
  • System Impact: Lower values detect stale tasks faster but increase database query frequency

orchestration.dlq.staleness_detection.dry_run

Run staleness detection in observation-only mode without taking action

  • Type: bool
  • Default: false
  • Valid Range: true/false
  • System Impact: Logs what would be DLQ’d without actually transitioning tasks; useful for tuning thresholds

orchestration.dlq.staleness_detection.enabled

Enable periodic scanning for stale tasks

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, no automatic staleness detection runs; tasks must be manually DLQ’d

actions

Path: orchestration.dlq.staleness_detection.actions

ParameterTypeDefaultDescription
auto_move_to_dlqbooltrueAutomatically move stale tasks to the DLQ after transitioning to error
auto_transition_to_errorbooltrueAutomatically transition stale tasks to the Error state
emit_eventsbooltrueEmit domain events when staleness is detected
event_channelString"task_staleness_detected"PGMQ channel name for staleness detection events

orchestration.dlq.staleness_detection.actions.auto_move_to_dlq

Automatically move stale tasks to the DLQ after transitioning to error

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When true, stale tasks are routed to the DLQ; when false, they remain in Error state for manual review

orchestration.dlq.staleness_detection.actions.auto_transition_to_error

Automatically transition stale tasks to the Error state

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When true, stale tasks are moved to Error before DLQ routing; when false, tasks stay in their current state

orchestration.dlq.staleness_detection.actions.emit_events

Emit domain events when staleness is detected

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When true, staleness events are published to the event_channel for external alerting or custom handling

orchestration.dlq.staleness_detection.actions.event_channel

PGMQ channel name for staleness detection events

  • Type: String
  • Default: "task_staleness_detected"
  • Valid Range: 1-255 characters
  • System Impact: Consumers can subscribe to this channel for alerting or custom staleness handling

thresholds

Path: orchestration.dlq.staleness_detection.thresholds

ParameterTypeDefaultDescription
steps_in_process_minutesu3230Minutes a task can have steps in process before being considered stale
task_max_lifetime_hoursu3224Absolute maximum lifetime for any task regardless of state
waiting_for_dependencies_minutesu3260Minutes a task can wait for step dependencies before being considered stale
waiting_for_retry_minutesu3230Minutes a task can wait for step retries before being considered stale

orchestration.dlq.staleness_detection.thresholds.steps_in_process_minutes

Minutes a task can have steps in process before being considered stale

  • Type: u32
  • Default: 30
  • Valid Range: 1-1440
  • System Impact: Tasks in StepsInProcess state exceeding this age may have hung workers; flags for investigation

orchestration.dlq.staleness_detection.thresholds.task_max_lifetime_hours

Absolute maximum lifetime for any task regardless of state

  • Type: u32
  • Default: 24
  • Valid Range: 1-168
  • System Impact: Hard cap; tasks exceeding this age are considered stale even if actively processing

orchestration.dlq.staleness_detection.thresholds.waiting_for_dependencies_minutes

Minutes a task can wait for step dependencies before being considered stale

  • Type: u32
  • Default: 60
  • Valid Range: 1-1440
  • System Impact: Tasks in WaitingForDependencies state exceeding this age are flagged for DLQ consideration

orchestration.dlq.staleness_detection.thresholds.waiting_for_retry_minutes

Minutes a task can wait for step retries before being considered stale

  • Type: u32
  • Default: 30
  • Valid Range: 1-1440
  • System Impact: Tasks in WaitingForRetry state exceeding this age are flagged for DLQ consideration

event_systems

Path: orchestration.event_systems

orchestration

Path: orchestration.event_systems.orchestration

ParameterTypeDefaultDescription
deployment_modeDeploymentMode"Hybrid"Event delivery mode: ‘Hybrid’ (LISTEN/NOTIFY + polling fallback), ‘EventDrivenOnly’, or ‘PollingOnly’
system_idString"orchestration-event-system"Unique identifier for the orchestration event system instance

orchestration.event_systems.orchestration.deployment_mode

Event delivery mode: ‘Hybrid’ (LISTEN/NOTIFY + polling fallback), ‘EventDrivenOnly’, or ‘PollingOnly’

  • Type: DeploymentMode
  • Default: "Hybrid"
  • Valid Range: Hybrid | EventDrivenOnly | PollingOnly
  • System Impact: Hybrid is recommended; EventDrivenOnly has lowest latency but no fallback; PollingOnly has highest latency but no LISTEN/NOTIFY dependency

orchestration.event_systems.orchestration.system_id

Unique identifier for the orchestration event system instance

  • Type: String
  • Default: "orchestration-event-system"
  • Valid Range: non-empty string
  • System Impact: Used in logging and metrics to distinguish this event system from others

health

Path: orchestration.event_systems.orchestration.health

ParameterTypeDefaultDescription
enabledbooltrueEnable health monitoring for the orchestration event system
error_rate_threshold_per_minuteu3220Error rate per minute above which the event system reports as unhealthy
max_consecutive_errorsu3210Number of consecutive errors before the event system reports as unhealthy
performance_monitoring_enabledbooltrueEnable detailed performance metrics collection for event processing

orchestration.event_systems.orchestration.health.enabled

Enable health monitoring for the orchestration event system

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, no health checks or error tracking run for this event system

orchestration.event_systems.orchestration.health.error_rate_threshold_per_minute

Error rate per minute above which the event system reports as unhealthy

  • Type: u32
  • Default: 20
  • Valid Range: 1-10000
  • System Impact: Rate-based health signal; complements max_consecutive_errors for burst error detection

orchestration.event_systems.orchestration.health.max_consecutive_errors

Number of consecutive errors before the event system reports as unhealthy

  • Type: u32
  • Default: 10
  • Valid Range: 1-1000
  • System Impact: Triggers health status degradation after sustained failures; resets on any success

orchestration.event_systems.orchestration.health.performance_monitoring_enabled

Enable detailed performance metrics collection for event processing

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Tracks processing latency percentiles and throughput; adds minor overhead

processing

Path: orchestration.event_systems.orchestration.processing

ParameterTypeDefaultDescription
batch_sizeu3220Number of events dequeued in a single batch read
max_concurrent_operationsu3250Maximum number of events processed concurrently by the orchestration event system
max_retriesu323Maximum retry attempts for a failed event processing operation

orchestration.event_systems.orchestration.processing.batch_size

Number of events dequeued in a single batch read

  • Type: u32
  • Default: 20
  • Valid Range: 1-1000
  • System Impact: Larger batches improve throughput but increase per-batch processing time

orchestration.event_systems.orchestration.processing.max_concurrent_operations

Maximum number of events processed concurrently by the orchestration event system

  • Type: u32
  • Default: 50
  • Valid Range: 1-10000
  • System Impact: Controls parallelism for task request, result, and finalization processing

orchestration.event_systems.orchestration.processing.max_retries

Maximum retry attempts for a failed event processing operation

  • Type: u32
  • Default: 3
  • Valid Range: 0-100
  • System Impact: Events exceeding this retry count are dropped or sent to the DLQ
backoff

Path: orchestration.event_systems.orchestration.processing.backoff

ParameterTypeDefaultDescription
initial_delay_msu64100Initial backoff delay in milliseconds after first event processing failure
jitter_percentf640.1Maximum jitter as a fraction of the computed backoff delay
max_delay_msu6410000Maximum backoff delay in milliseconds between event processing retries
multiplierf642.0Multiplier applied to the backoff delay after each consecutive failure

timing

Path: orchestration.event_systems.orchestration.timing

ParameterTypeDefaultDescription
claim_timeout_secondsu32300Maximum time in seconds an event claim remains valid
fallback_polling_interval_secondsu325Interval in seconds between fallback polling cycles when LISTEN/NOTIFY is unavailable
health_check_interval_secondsu3230Interval in seconds between health check probes for the orchestration event system
processing_timeout_secondsu3260Maximum time in seconds allowed for processing a single event
visibility_timeout_secondsu3230Time in seconds a dequeued message remains invisible to other consumers

orchestration.event_systems.orchestration.timing.claim_timeout_seconds

Maximum time in seconds an event claim remains valid

  • Type: u32
  • Default: 300
  • Valid Range: 1-3600
  • System Impact: Prevents abandoned claims from blocking event processing indefinitely

orchestration.event_systems.orchestration.timing.fallback_polling_interval_seconds

Interval in seconds between fallback polling cycles when LISTEN/NOTIFY is unavailable

  • Type: u32
  • Default: 5
  • Valid Range: 1-60
  • System Impact: Only active in Hybrid mode when event-driven delivery fails; lower values reduce latency but increase DB load

orchestration.event_systems.orchestration.timing.health_check_interval_seconds

Interval in seconds between health check probes for the orchestration event system

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: Controls how frequently the event system verifies its own connectivity and responsiveness

orchestration.event_systems.orchestration.timing.processing_timeout_seconds

Maximum time in seconds allowed for processing a single event

  • Type: u32
  • Default: 60
  • Valid Range: 1-3600
  • System Impact: Events exceeding this timeout are considered failed and may be retried

orchestration.event_systems.orchestration.timing.visibility_timeout_seconds

Time in seconds a dequeued message remains invisible to other consumers

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: If processing is not completed within this window, the message becomes visible again for redelivery

task_readiness

Path: orchestration.event_systems.task_readiness

ParameterTypeDefaultDescription
deployment_modeDeploymentMode"Hybrid"Event delivery mode for task readiness: ‘Hybrid’, ‘EventDrivenOnly’, or ‘PollingOnly’
system_idString"task-readiness-event-system"Unique identifier for the task readiness event system instance

orchestration.event_systems.task_readiness.deployment_mode

Event delivery mode for task readiness: ‘Hybrid’, ‘EventDrivenOnly’, or ‘PollingOnly’

  • Type: DeploymentMode
  • Default: "Hybrid"
  • Valid Range: Hybrid | EventDrivenOnly | PollingOnly
  • System Impact: Hybrid is recommended; task readiness events trigger step processing and benefit from low-latency delivery

orchestration.event_systems.task_readiness.system_id

Unique identifier for the task readiness event system instance

  • Type: String
  • Default: "task-readiness-event-system"
  • Valid Range: non-empty string
  • System Impact: Used in logging and metrics to distinguish task readiness events from other event systems

health

Path: orchestration.event_systems.task_readiness.health

ParameterTypeDefaultDescription
enabledbooltrueEnable health monitoring for the task readiness event system
error_rate_threshold_per_minuteu3220Error rate per minute above which the task readiness system reports as unhealthy
max_consecutive_errorsu3210Number of consecutive errors before the task readiness system reports as unhealthy
performance_monitoring_enabledbooltrueEnable detailed performance metrics for task readiness event processing

orchestration.event_systems.task_readiness.health.enabled

Enable health monitoring for the task readiness event system

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, no health checks run for task readiness processing

orchestration.event_systems.task_readiness.health.error_rate_threshold_per_minute

Error rate per minute above which the task readiness system reports as unhealthy

  • Type: u32
  • Default: 20
  • Valid Range: 1-10000
  • System Impact: Rate-based health signal complementing max_consecutive_errors

orchestration.event_systems.task_readiness.health.max_consecutive_errors

Number of consecutive errors before the task readiness system reports as unhealthy

  • Type: u32
  • Default: 10
  • Valid Range: 1-1000
  • System Impact: Triggers health status degradation; resets on any successful readiness check

orchestration.event_systems.task_readiness.health.performance_monitoring_enabled

Enable detailed performance metrics for task readiness event processing

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Tracks readiness check latency and throughput; useful for tuning batch_size and concurrency

processing

Path: orchestration.event_systems.task_readiness.processing

ParameterTypeDefaultDescription
batch_sizeu3250Number of task readiness events dequeued in a single batch
max_concurrent_operationsu32100Maximum number of task readiness events processed concurrently
max_retriesu323Maximum retry attempts for a failed task readiness event

orchestration.event_systems.task_readiness.processing.batch_size

Number of task readiness events dequeued in a single batch

  • Type: u32
  • Default: 50
  • Valid Range: 1-1000
  • System Impact: Larger batches improve throughput for readiness evaluation; 50 balances latency and throughput

orchestration.event_systems.task_readiness.processing.max_concurrent_operations

Maximum number of task readiness events processed concurrently

  • Type: u32
  • Default: 100
  • Valid Range: 1-10000
  • System Impact: Higher than orchestration (100 vs 50) because readiness checks are lightweight SQL queries

orchestration.event_systems.task_readiness.processing.max_retries

Maximum retry attempts for a failed task readiness event

  • Type: u32
  • Default: 3
  • Valid Range: 0-100
  • System Impact: Readiness events are idempotent so retries are safe; limits retry storms
backoff

Path: orchestration.event_systems.task_readiness.processing.backoff

ParameterTypeDefaultDescription
initial_delay_msu64100Initial backoff delay in milliseconds after first task readiness processing failure
jitter_percentf640.1Maximum jitter as a fraction of the computed backoff delay for readiness retries
max_delay_msu6410000Maximum backoff delay in milliseconds for task readiness retries
multiplierf642.0Multiplier applied to the backoff delay after each consecutive readiness failure

timing

Path: orchestration.event_systems.task_readiness.timing

ParameterTypeDefaultDescription
claim_timeout_secondsu32300Maximum time in seconds a task readiness event claim remains valid
fallback_polling_interval_secondsu325Interval in seconds between fallback polling cycles for task readiness
health_check_interval_secondsu3230Interval in seconds between health check probes for the task readiness event system
processing_timeout_secondsu3260Maximum time in seconds allowed for processing a single task readiness event
visibility_timeout_secondsu3230Time in seconds a dequeued task readiness message remains invisible to other consumers

orchestration.event_systems.task_readiness.timing.claim_timeout_seconds

Maximum time in seconds a task readiness event claim remains valid

  • Type: u32
  • Default: 300
  • Valid Range: 1-3600
  • System Impact: Prevents abandoned readiness claims from blocking task evaluation

orchestration.event_systems.task_readiness.timing.fallback_polling_interval_seconds

Interval in seconds between fallback polling cycles for task readiness

  • Type: u32
  • Default: 5
  • Valid Range: 1-60
  • System Impact: Fallback interval when LISTEN/NOTIFY is unavailable; lower values improve responsiveness

orchestration.event_systems.task_readiness.timing.health_check_interval_seconds

Interval in seconds between health check probes for the task readiness event system

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: Controls how frequently the task readiness system verifies its own connectivity

orchestration.event_systems.task_readiness.timing.processing_timeout_seconds

Maximum time in seconds allowed for processing a single task readiness event

  • Type: u32
  • Default: 60
  • Valid Range: 1-3600
  • System Impact: Readiness events exceeding this timeout are considered failed

orchestration.event_systems.task_readiness.timing.visibility_timeout_seconds

Time in seconds a dequeued task readiness message remains invisible to other consumers

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: Prevents duplicate processing of readiness events during normal operation

grpc

Path: orchestration.grpc

ParameterTypeDefaultDescription
bind_addressString"${TASKER_ORCHESTRATION_GRPC_BIND_ADDRESS:-0.0.0.0:9190}"Socket address for the gRPC server
enable_health_servicebooltrueEnable the gRPC health checking service (grpc.health.v1)
enable_reflectionbooltrueEnable gRPC server reflection for service discovery
enabledbooltrueEnable the gRPC API server alongside the REST API
keepalive_interval_secondsu3230Interval in seconds between gRPC keepalive ping frames
keepalive_timeout_secondsu3220Time in seconds to wait for a keepalive ping acknowledgment before closing the connection
max_concurrent_streamsu32200Maximum number of concurrent gRPC streams per connection
max_frame_sizeu3216384Maximum size in bytes of a single HTTP/2 frame
tls_enabledboolfalseEnable TLS encryption for gRPC connections

orchestration.grpc.bind_address

Socket address for the gRPC server

  • Type: String
  • Default: "${TASKER_ORCHESTRATION_GRPC_BIND_ADDRESS:-0.0.0.0:9190}"
  • Valid Range: host:port
  • System Impact: Must not conflict with the REST API bind_address; default 9190 avoids Prometheus port conflict

orchestration.grpc.enable_health_service

Enable the gRPC health checking service (grpc.health.v1)

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Required for gRPC-native health checks used by load balancers and container orchestrators

orchestration.grpc.enable_reflection

Enable gRPC server reflection for service discovery

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Allows tools like grpcurl to list and inspect services; safe to enable in development, consider disabling in production

orchestration.grpc.enabled

Enable the gRPC API server alongside the REST API

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, no gRPC endpoints are available; clients must use REST

orchestration.grpc.keepalive_interval_seconds

Interval in seconds between gRPC keepalive ping frames

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: Detects dead connections; lower values detect failures faster but increase network overhead

orchestration.grpc.keepalive_timeout_seconds

Time in seconds to wait for a keepalive ping acknowledgment before closing the connection

  • Type: u32
  • Default: 20
  • Valid Range: 1-300
  • System Impact: Connections that fail to acknowledge within this window are considered dead and closed

orchestration.grpc.max_concurrent_streams

Maximum number of concurrent gRPC streams per connection

  • Type: u32
  • Default: 200
  • Valid Range: 1-10000
  • System Impact: Limits multiplexed request parallelism per connection; 200 is conservative for orchestration workloads

orchestration.grpc.max_frame_size

Maximum size in bytes of a single HTTP/2 frame

  • Type: u32
  • Default: 16384
  • Valid Range: 16384-16777215
  • System Impact: Larger frames reduce framing overhead for large messages but increase memory per-stream

orchestration.grpc.tls_enabled

Enable TLS encryption for gRPC connections

  • Type: bool
  • Default: false
  • Valid Range: true/false
  • System Impact: When true, tls_cert_path and tls_key_path must be provided; required for production gRPC deployments

mpsc_channels

Path: orchestration.mpsc_channels

command_processor

Path: orchestration.mpsc_channels.command_processor

ParameterTypeDefaultDescription
command_buffer_sizeusize5000Bounded channel capacity for the orchestration command processor

orchestration.mpsc_channels.command_processor.command_buffer_size

Bounded channel capacity for the orchestration command processor

  • Type: usize
  • Default: 5000
  • Valid Range: 100-100000
  • System Impact: Buffers incoming orchestration commands; larger values absorb traffic spikes but use more memory

event_listeners

Path: orchestration.mpsc_channels.event_listeners

ParameterTypeDefaultDescription
pgmq_event_buffer_sizeusize50000Bounded channel capacity for PGMQ event listener notifications

orchestration.mpsc_channels.event_listeners.pgmq_event_buffer_size

Bounded channel capacity for PGMQ event listener notifications

  • Type: usize
  • Default: 50000
  • Valid Range: 1000-1000000
  • System Impact: Large buffer (50000) absorbs high-volume PGMQ LISTEN/NOTIFY events without backpressure on PostgreSQL

event_systems

Path: orchestration.mpsc_channels.event_systems

ParameterTypeDefaultDescription
event_channel_buffer_sizeusize10000Bounded channel capacity for the orchestration event system internal channel

orchestration.mpsc_channels.event_systems.event_channel_buffer_size

Bounded channel capacity for the orchestration event system internal channel

  • Type: usize
  • Default: 10000
  • Valid Range: 100-100000
  • System Impact: Buffers events between the event listener and event processor; larger values absorb notification bursts

web

Path: orchestration.web

ParameterTypeDefaultDescription
bind_addressString"${TASKER_WEB_BIND_ADDRESS:-0.0.0.0:8080}"Socket address for the REST API server
enabledbooltrueEnable the REST API server for the orchestration service
request_timeout_msu3230000Maximum time in milliseconds for an HTTP request to complete before timeout

orchestration.web.bind_address

Socket address for the REST API server

  • Type: String
  • Default: "${TASKER_WEB_BIND_ADDRESS:-0.0.0.0:8080}"
  • Valid Range: host:port
  • System Impact: Determines where the orchestration REST API listens; use 0.0.0.0 for container deployments

Environment Recommendations:

EnvironmentValueRationale
production0.0.0.0:8080Standard port; use TASKER_WEB_BIND_ADDRESS env var to override in CI
test0.0.0.0:8080Default port for test fixtures

orchestration.web.enabled

Enable the REST API server for the orchestration service

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, no HTTP endpoints are available; the service operates via messaging only

orchestration.web.request_timeout_ms

Maximum time in milliseconds for an HTTP request to complete before timeout

  • Type: u32
  • Default: 30000
  • Valid Range: 100-300000
  • System Impact: Requests exceeding this timeout return HTTP 408; protects against slow client connections

auth

Path: orchestration.web.auth

ParameterTypeDefaultDescription
api_keyString""Static API key for simple key-based authentication
api_key_headerString"X-API-Key"HTTP header name for API key authentication
enabledboolfalseEnable authentication for the REST API
jwt_audienceString"tasker-api"Expected ‘aud’ claim in JWT tokens
jwt_issuerString"tasker-core"Expected ‘iss’ claim in JWT tokens
jwt_private_keyString""PEM-encoded private key for signing JWT tokens (if this service issues tokens)
jwt_public_keyString"${TASKER_JWT_PUBLIC_KEY:-}"PEM-encoded public key for verifying JWT token signatures
jwt_public_key_pathString"${TASKER_JWT_PUBLIC_KEY_PATH:-}"File path to a PEM-encoded public key for JWT verification
jwt_token_expiry_hoursu3224Default JWT token validity period in hours

orchestration.web.auth.api_key

Static API key for simple key-based authentication

  • Type: String
  • Default: ""
  • Valid Range: non-empty string or empty to disable
  • System Impact: When non-empty and auth is enabled, clients can authenticate by sending this key in the api_key_header

orchestration.web.auth.api_key_header

HTTP header name for API key authentication

  • Type: String
  • Default: "X-API-Key"
  • Valid Range: valid HTTP header name
  • System Impact: Clients send their API key in this header; default is X-API-Key

orchestration.web.auth.enabled

Enable authentication for the REST API

  • Type: bool
  • Default: false
  • Valid Range: true/false
  • System Impact: When false, all API endpoints are unauthenticated; enable in production with JWT or API key auth

orchestration.web.auth.jwt_audience

Expected ‘aud’ claim in JWT tokens

  • Type: String
  • Default: "tasker-api"
  • Valid Range: non-empty string
  • System Impact: Tokens with a different audience are rejected during validation

orchestration.web.auth.jwt_issuer

Expected ‘iss’ claim in JWT tokens

  • Type: String
  • Default: "tasker-core"
  • Valid Range: non-empty string
  • System Impact: Tokens with a different issuer are rejected during validation

orchestration.web.auth.jwt_private_key

PEM-encoded private key for signing JWT tokens (if this service issues tokens)

  • Type: String
  • Default: ""
  • Valid Range: valid PEM private key or empty
  • System Impact: Required only if the orchestration service issues its own JWT tokens; leave empty when using external identity providers

orchestration.web.auth.jwt_public_key

PEM-encoded public key for verifying JWT token signatures

  • Type: String
  • Default: "${TASKER_JWT_PUBLIC_KEY:-}"
  • Valid Range: valid PEM public key or empty
  • System Impact: Required for JWT validation; prefer jwt_public_key_path for file-based key management in production

orchestration.web.auth.jwt_public_key_path

File path to a PEM-encoded public key for JWT verification

  • Type: String
  • Default: "${TASKER_JWT_PUBLIC_KEY_PATH:-}"
  • Valid Range: valid file path or empty
  • System Impact: Alternative to inline jwt_public_key; supports key rotation by replacing the file

orchestration.web.auth.jwt_token_expiry_hours

Default JWT token validity period in hours

  • Type: u32
  • Default: 24
  • Valid Range: 1-720
  • System Impact: Tokens older than this are rejected; shorter values improve security but require more frequent re-authentication

database_pools

Path: orchestration.web.database_pools

ParameterTypeDefaultDescription
max_total_connections_hintu3250Advisory hint for the total number of database connections across all orchestration pools
web_api_connection_timeout_secondsu3230Maximum time to wait when acquiring a connection from the web API pool
web_api_idle_timeout_secondsu32600Time before an idle web API connection is closed
web_api_max_connectionsu3230Maximum number of connections the web API pool can grow to under load
web_api_pool_sizeu3220Target number of connections in the web API database pool

orchestration.web.database_pools.max_total_connections_hint

Advisory hint for the total number of database connections across all orchestration pools

  • Type: u32
  • Default: 50
  • Valid Range: 1-1000
  • System Impact: Used for capacity planning; not enforced but logged if actual connections exceed this hint

orchestration.web.database_pools.web_api_connection_timeout_seconds

Maximum time to wait when acquiring a connection from the web API pool

  • Type: u32
  • Default: 30
  • Valid Range: 1-300
  • System Impact: API requests that cannot acquire a connection within this window return an error

orchestration.web.database_pools.web_api_idle_timeout_seconds

Time before an idle web API connection is closed

  • Type: u32
  • Default: 600
  • Valid Range: 1-3600
  • System Impact: Controls how quickly the web API pool shrinks after traffic subsides

orchestration.web.database_pools.web_api_max_connections

Maximum number of connections the web API pool can grow to under load

  • Type: u32
  • Default: 30
  • Valid Range: 1-500
  • System Impact: Hard ceiling for web API database connections; prevents connection exhaustion from traffic spikes

orchestration.web.database_pools.web_api_pool_size

Target number of connections in the web API database pool

  • Type: u32
  • Default: 20
  • Valid Range: 1-200
  • System Impact: Determines how many concurrent database queries the REST API can execute

Generated by tasker-ctl docsTasker Configuration System

Configuration Reference: worker

90/90 parameters documented


worker

Root-level worker parameters

Path: worker

ParameterTypeDefaultDescription
worker_idString"worker-default-001"Unique identifier for this worker instance
worker_typeString"general"Worker type classification for routing and reporting

worker.worker_id

Unique identifier for this worker instance

  • Type: String
  • Default: "worker-default-001"
  • Valid Range: non-empty string
  • System Impact: Used in logging, metrics, and step claim attribution; must be unique across all worker instances in a cluster

worker.worker_type

Worker type classification for routing and reporting

  • Type: String
  • Default: "general"
  • Valid Range: non-empty string
  • System Impact: Used to match worker capabilities with step handler requirements; ‘general’ handles all step types

circuit_breakers

Path: worker.circuit_breakers

ffi_completion_send

Path: worker.circuit_breakers.ffi_completion_send

ParameterTypeDefaultDescription
failure_thresholdu325Number of consecutive FFI completion send failures before the circuit breaker trips
recovery_timeout_secondsu325Time the FFI completion breaker stays Open before probing with a test send
slow_send_threshold_msu32100Threshold in milliseconds above which FFI completion channel sends are logged as slow
success_thresholdu322Consecutive successful sends in Half-Open required to close the breaker

worker.circuit_breakers.ffi_completion_send.failure_threshold

Number of consecutive FFI completion send failures before the circuit breaker trips

  • Type: u32
  • Default: 5
  • Valid Range: 1-100
  • System Impact: Protects the FFI completion channel from cascading failures; when tripped, sends are short-circuited

worker.circuit_breakers.ffi_completion_send.recovery_timeout_seconds

Time the FFI completion breaker stays Open before probing with a test send

  • Type: u32
  • Default: 5
  • Valid Range: 1-300
  • System Impact: Short timeout (5s) because FFI channel issues are typically transient

worker.circuit_breakers.ffi_completion_send.slow_send_threshold_ms

Threshold in milliseconds above which FFI completion channel sends are logged as slow

  • Type: u32
  • Default: 100
  • Valid Range: 10-10000
  • System Impact: Observability: identifies when the FFI completion channel is under pressure from slow consumers

worker.circuit_breakers.ffi_completion_send.success_threshold

Consecutive successful sends in Half-Open required to close the breaker

  • Type: u32
  • Default: 2
  • Valid Range: 1-100
  • System Impact: Low threshold (2) allows fast recovery since FFI send failures are usually transient

event_systems

Path: worker.event_systems

worker

Path: worker.event_systems.worker

ParameterTypeDefaultDescription
deployment_modeDeploymentMode"Hybrid"Event delivery mode: ‘Hybrid’ (LISTEN/NOTIFY + polling fallback), ‘EventDrivenOnly’, or ‘PollingOnly’
system_idString"worker-event-system"Unique identifier for the worker event system instance

worker.event_systems.worker.deployment_mode

Event delivery mode: ‘Hybrid’ (LISTEN/NOTIFY + polling fallback), ‘EventDrivenOnly’, or ‘PollingOnly’

  • Type: DeploymentMode
  • Default: "Hybrid"
  • Valid Range: Hybrid | EventDrivenOnly | PollingOnly
  • System Impact: Hybrid is recommended; EventDrivenOnly has lowest latency but no fallback; PollingOnly has highest latency but no LISTEN/NOTIFY dependency

worker.event_systems.worker.system_id

Unique identifier for the worker event system instance

  • Type: String
  • Default: "worker-event-system"
  • Valid Range: non-empty string
  • System Impact: Used in logging and metrics to distinguish this event system from others

health

Path: worker.event_systems.worker.health

ParameterTypeDefaultDescription
enabledbooltrueEnable health monitoring for the worker event system
error_rate_threshold_per_minuteu3220Error rate per minute above which the worker event system reports as unhealthy
max_consecutive_errorsu3210Number of consecutive errors before the worker event system reports as unhealthy
performance_monitoring_enabledbooltrueEnable detailed performance metrics for worker event processing

worker.event_systems.worker.health.enabled

Enable health monitoring for the worker event system

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, no health checks or error tracking run for the worker event system

worker.event_systems.worker.health.error_rate_threshold_per_minute

Error rate per minute above which the worker event system reports as unhealthy

  • Type: u32
  • Default: 20
  • Valid Range: 1-10000
  • System Impact: Rate-based health signal complementing max_consecutive_errors

worker.event_systems.worker.health.max_consecutive_errors

Number of consecutive errors before the worker event system reports as unhealthy

  • Type: u32
  • Default: 10
  • Valid Range: 1-1000
  • System Impact: Triggers health status degradation; resets on any successful event processing

worker.event_systems.worker.health.performance_monitoring_enabled

Enable detailed performance metrics for worker event processing

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Tracks step dispatch latency and throughput; useful for tuning concurrency settings

metadata

Path: worker.event_systems.worker.metadata

fallback_poller

Path: worker.event_systems.worker.metadata.fallback_poller

ParameterTypeDefaultDescription
age_threshold_secondsu325Minimum age in seconds of a message before the fallback poller will pick it up
batch_sizeu3220Number of messages to dequeue in a single fallback poll
enabledbooltrueEnable the fallback polling mechanism for step dispatch
max_age_hoursu3224Maximum age in hours of messages the fallback poller will process
polling_interval_msu321000Interval in milliseconds between fallback polling cycles
supported_namespacesVec<String>[]List of queue namespaces the fallback poller monitors; empty means all namespaces
visibility_timeout_secondsu3230Time in seconds a message polled by the fallback mechanism remains invisible
in_process_events

Path: worker.event_systems.worker.metadata.in_process_events

ParameterTypeDefaultDescription
deduplication_cache_sizeusize10000Number of event IDs to cache for deduplication of in-process events
ffi_integration_enabledbooltrueEnable FFI integration for in-process event delivery to Ruby/Python workers
listener

Path: worker.event_systems.worker.metadata.listener

ParameterTypeDefaultDescription
batch_processingbooltrueEnable batch processing of accumulated LISTEN/NOTIFY events
connection_timeout_secondsu3230Maximum time to wait when establishing the LISTEN/NOTIFY PostgreSQL connection
event_timeout_secondsu3260Maximum time to wait for a LISTEN/NOTIFY event before yielding
max_retry_attemptsu325Maximum number of listener reconnection attempts before falling back to polling
retry_interval_secondsu325Interval in seconds between LISTEN/NOTIFY listener reconnection attempts

processing

Path: worker.event_systems.worker.processing

ParameterTypeDefaultDescription
batch_sizeu3220Number of events dequeued in a single batch read by the worker
max_concurrent_operationsu32100Maximum number of events processed concurrently by the worker event system
max_retriesu323Maximum retry attempts for a failed worker event processing operation

worker.event_systems.worker.processing.batch_size

Number of events dequeued in a single batch read by the worker

  • Type: u32
  • Default: 20
  • Valid Range: 1-1000
  • System Impact: Larger batches improve throughput but increase per-batch processing time

worker.event_systems.worker.processing.max_concurrent_operations

Maximum number of events processed concurrently by the worker event system

  • Type: u32
  • Default: 100
  • Valid Range: 1-10000
  • System Impact: Controls parallelism for step dispatch and completion processing

worker.event_systems.worker.processing.max_retries

Maximum retry attempts for a failed worker event processing operation

  • Type: u32
  • Default: 3
  • Valid Range: 0-100
  • System Impact: Events exceeding this retry count are dropped or sent to the DLQ
backoff

Path: worker.event_systems.worker.processing.backoff

ParameterTypeDefaultDescription
initial_delay_msu64100Initial backoff delay in milliseconds after first worker event processing failure
jitter_percentf640.1Maximum jitter as a fraction of the computed backoff delay
max_delay_msu6410000Maximum backoff delay in milliseconds between worker event retries
multiplierf642.0Multiplier applied to the backoff delay after each consecutive failure

timing

Path: worker.event_systems.worker.timing

ParameterTypeDefaultDescription
claim_timeout_secondsu32300Maximum time in seconds a worker event claim remains valid
fallback_polling_interval_secondsu322Interval in seconds between fallback polling cycles for step dispatch
health_check_interval_secondsu3230Interval in seconds between health check probes for the worker event system
processing_timeout_secondsu3260Maximum time in seconds allowed for processing a single worker event
visibility_timeout_secondsu3230Time in seconds a dequeued step dispatch message remains invisible to other workers

worker.event_systems.worker.timing.claim_timeout_seconds

Maximum time in seconds a worker event claim remains valid

  • Type: u32
  • Default: 300
  • Valid Range: 1-3600
  • System Impact: Prevents abandoned claims from blocking step processing indefinitely

worker.event_systems.worker.timing.fallback_polling_interval_seconds

Interval in seconds between fallback polling cycles for step dispatch

  • Type: u32
  • Default: 2
  • Valid Range: 1-60
  • System Impact: Shorter than orchestration (2s vs 5s) because workers need fast step pickup for low latency

worker.event_systems.worker.timing.health_check_interval_seconds

Interval in seconds between health check probes for the worker event system

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: Controls how frequently the worker event system verifies its own connectivity

worker.event_systems.worker.timing.processing_timeout_seconds

Maximum time in seconds allowed for processing a single worker event

  • Type: u32
  • Default: 60
  • Valid Range: 1-3600
  • System Impact: Events exceeding this timeout are considered failed and may be retried

worker.event_systems.worker.timing.visibility_timeout_seconds

Time in seconds a dequeued step dispatch message remains invisible to other workers

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: Prevents duplicate step execution; must be longer than typical step processing time

grpc

Path: worker.grpc

ParameterTypeDefaultDescription
bind_addressString"${TASKER_WORKER_GRPC_BIND_ADDRESS:-0.0.0.0:9191}"Socket address for the worker gRPC server
enable_health_servicebooltrueEnable the gRPC health checking service on the worker
enable_reflectionbooltrueEnable gRPC server reflection for the worker service
enabledbooltrueEnable the gRPC API server for the worker service
keepalive_interval_secondsu3230Interval in seconds between gRPC keepalive ping frames on the worker
keepalive_timeout_secondsu3220Time in seconds to wait for a keepalive ping acknowledgment before closing the connection
max_concurrent_streamsu321000Maximum number of concurrent gRPC streams per connection
max_frame_sizeu3216384Maximum size in bytes of a single HTTP/2 frame for the worker gRPC server
tls_enabledboolfalseEnable TLS encryption for worker gRPC connections

worker.grpc.bind_address

Socket address for the worker gRPC server

  • Type: String
  • Default: "${TASKER_WORKER_GRPC_BIND_ADDRESS:-0.0.0.0:9191}"
  • Valid Range: host:port
  • System Impact: Must not conflict with the REST API or orchestration gRPC ports; default 9191

worker.grpc.enable_health_service

Enable the gRPC health checking service on the worker

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Required for gRPC-native health checks used by load balancers and container orchestrators

worker.grpc.enable_reflection

Enable gRPC server reflection for the worker service

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Allows tools like grpcurl to list and inspect worker services; consider disabling in production

worker.grpc.enabled

Enable the gRPC API server for the worker service

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, no gRPC endpoints are available; clients must use REST

worker.grpc.keepalive_interval_seconds

Interval in seconds between gRPC keepalive ping frames on the worker

  • Type: u32
  • Default: 30
  • Valid Range: 1-3600
  • System Impact: Detects dead connections; lower values detect failures faster but increase network overhead

worker.grpc.keepalive_timeout_seconds

Time in seconds to wait for a keepalive ping acknowledgment before closing the connection

  • Type: u32
  • Default: 20
  • Valid Range: 1-300
  • System Impact: Connections that fail to acknowledge within this window are considered dead and closed

worker.grpc.max_concurrent_streams

Maximum number of concurrent gRPC streams per connection

  • Type: u32
  • Default: 1000
  • Valid Range: 1-10000
  • System Impact: Workers typically handle more concurrent streams than orchestration; default 1000 reflects this

worker.grpc.max_frame_size

Maximum size in bytes of a single HTTP/2 frame for the worker gRPC server

  • Type: u32
  • Default: 16384
  • Valid Range: 16384-16777215
  • System Impact: Larger frames reduce framing overhead for large messages but increase memory per-stream

worker.grpc.tls_enabled

Enable TLS encryption for worker gRPC connections

  • Type: bool
  • Default: false
  • Valid Range: true/false
  • System Impact: When true, TLS cert and key paths must be provided; required for production gRPC deployments

mpsc_channels

Path: worker.mpsc_channels

command_processor

Path: worker.mpsc_channels.command_processor

ParameterTypeDefaultDescription
command_buffer_sizeusize2000Bounded channel capacity for the worker command processor

worker.mpsc_channels.command_processor.command_buffer_size

Bounded channel capacity for the worker command processor

  • Type: usize
  • Default: 2000
  • Valid Range: 100-100000
  • System Impact: Buffers incoming worker commands; smaller than orchestration (2000 vs 5000) since workers process fewer command types

domain_events

Path: worker.mpsc_channels.domain_events

ParameterTypeDefaultDescription
command_buffer_sizeusize1000Bounded channel capacity for domain event system commands
log_dropped_eventsbooltrueLog a warning when domain events are dropped due to channel saturation
shutdown_drain_timeout_msu325000Maximum time in milliseconds to drain pending domain events during shutdown

worker.mpsc_channels.domain_events.command_buffer_size

Bounded channel capacity for domain event system commands

  • Type: usize
  • Default: 1000
  • Valid Range: 100-50000
  • System Impact: Buffers domain event system control commands such as publish, subscribe, and shutdown

worker.mpsc_channels.domain_events.log_dropped_events

Log a warning when domain events are dropped due to channel saturation

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Observability: helps detect when event volume exceeds channel capacity

worker.mpsc_channels.domain_events.shutdown_drain_timeout_ms

Maximum time in milliseconds to drain pending domain events during shutdown

  • Type: u32
  • Default: 5000
  • Valid Range: 100-60000
  • System Impact: Ensures in-flight domain events are delivered before the worker exits; prevents event loss

event_listeners

Path: worker.mpsc_channels.event_listeners

ParameterTypeDefaultDescription
pgmq_event_buffer_sizeusize10000Bounded channel capacity for PGMQ event listener notifications on the worker

worker.mpsc_channels.event_listeners.pgmq_event_buffer_size

Bounded channel capacity for PGMQ event listener notifications on the worker

  • Type: usize
  • Default: 10000
  • Valid Range: 1000-1000000
  • System Impact: Buffers PGMQ LISTEN/NOTIFY events; smaller than orchestration (10000 vs 50000) since workers handle fewer event types

event_subscribers

Path: worker.mpsc_channels.event_subscribers

ParameterTypeDefaultDescription
completion_buffer_sizeusize1000Bounded channel capacity for step completion event subscribers
result_buffer_sizeusize1000Bounded channel capacity for step result event subscribers

worker.mpsc_channels.event_subscribers.completion_buffer_size

Bounded channel capacity for step completion event subscribers

  • Type: usize
  • Default: 1000
  • Valid Range: 100-50000
  • System Impact: Buffers step completion notifications before they are forwarded to the orchestration service

worker.mpsc_channels.event_subscribers.result_buffer_size

Bounded channel capacity for step result event subscribers

  • Type: usize
  • Default: 1000
  • Valid Range: 100-50000
  • System Impact: Buffers step execution results before they are published to the result queue

event_systems

Path: worker.mpsc_channels.event_systems

ParameterTypeDefaultDescription
event_channel_buffer_sizeusize2000Bounded channel capacity for the worker event system internal channel

worker.mpsc_channels.event_systems.event_channel_buffer_size

Bounded channel capacity for the worker event system internal channel

  • Type: usize
  • Default: 2000
  • Valid Range: 100-100000
  • System Impact: Buffers events between the listener and processor; sized for worker-level throughput

ffi_dispatch

Path: worker.mpsc_channels.ffi_dispatch

ParameterTypeDefaultDescription
callback_timeout_msu325000Maximum time in milliseconds for FFI fire-and-forget domain event callbacks
completion_send_timeout_msu3210000Maximum time in milliseconds to retry sending FFI completion results when the channel is full
completion_timeout_msu3230000Maximum time in milliseconds to wait for an FFI step handler to complete
dispatch_buffer_sizeusize1000Bounded channel capacity for FFI step dispatch requests
starvation_warning_threshold_msu3210000Age in milliseconds of pending FFI events that triggers a starvation warning

worker.mpsc_channels.ffi_dispatch.callback_timeout_ms

Maximum time in milliseconds for FFI fire-and-forget domain event callbacks

  • Type: u32
  • Default: 5000
  • Valid Range: 100-60000
  • System Impact: Prevents indefinite blocking of FFI threads during domain event publishing

worker.mpsc_channels.ffi_dispatch.completion_send_timeout_ms

Maximum time in milliseconds to retry sending FFI completion results when the channel is full

  • Type: u32
  • Default: 10000
  • Valid Range: 1000-300000
  • System Impact: Uses try_send with retry loop instead of blocking send to prevent deadlocks

worker.mpsc_channels.ffi_dispatch.completion_timeout_ms

Maximum time in milliseconds to wait for an FFI step handler to complete

  • Type: u32
  • Default: 30000
  • Valid Range: 1000-600000
  • System Impact: FFI handlers exceeding this timeout are considered failed; guards against hung FFI threads

worker.mpsc_channels.ffi_dispatch.dispatch_buffer_size

Bounded channel capacity for FFI step dispatch requests

  • Type: usize
  • Default: 1000
  • Valid Range: 100-50000
  • System Impact: Buffers step execution requests destined for Ruby/Python FFI handlers

worker.mpsc_channels.ffi_dispatch.starvation_warning_threshold_ms

Age in milliseconds of pending FFI events that triggers a starvation warning

  • Type: u32
  • Default: 10000
  • Valid Range: 1000-300000
  • System Impact: Proactive detection of FFI channel starvation before completion_timeout_ms is reached

handler_dispatch

Path: worker.mpsc_channels.handler_dispatch

ParameterTypeDefaultDescription
completion_buffer_sizeusize1000Bounded channel capacity for step handler completion notifications
dispatch_buffer_sizeusize1000Bounded channel capacity for step handler dispatch requests
handler_timeout_msu3230000Maximum time in milliseconds for a step handler to complete execution
max_concurrent_handlersu3210Maximum number of step handlers executing simultaneously

worker.mpsc_channels.handler_dispatch.completion_buffer_size

Bounded channel capacity for step handler completion notifications

  • Type: usize
  • Default: 1000
  • Valid Range: 100-50000
  • System Impact: Buffers handler completion results before they are forwarded to the result processor

worker.mpsc_channels.handler_dispatch.dispatch_buffer_size

Bounded channel capacity for step handler dispatch requests

  • Type: usize
  • Default: 1000
  • Valid Range: 100-50000
  • System Impact: Buffers incoming step execution requests before handler assignment

worker.mpsc_channels.handler_dispatch.handler_timeout_ms

Maximum time in milliseconds for a step handler to complete execution

  • Type: u32
  • Default: 30000
  • Valid Range: 1000-600000
  • System Impact: Handlers exceeding this timeout are cancelled; prevents hung handlers from consuming capacity

worker.mpsc_channels.handler_dispatch.max_concurrent_handlers

Maximum number of step handlers executing simultaneously

  • Type: u32
  • Default: 10
  • Valid Range: 1-10000
  • System Impact: Controls per-worker parallelism; bounded by the handler dispatch semaphore

load_shedding

Path: worker.mpsc_channels.handler_dispatch.load_shedding

ParameterTypeDefaultDescription
capacity_threshold_percentf6480.0Handler capacity percentage above which new step claims are refused
enabledbooltrueEnable load shedding to refuse step claims when handler capacity is nearly exhausted
warning_threshold_percentf6470.0Handler capacity percentage at which warning logs are emitted

worker.mpsc_channels.handler_dispatch.load_shedding.capacity_threshold_percent

Handler capacity percentage above which new step claims are refused

  • Type: f64
  • Default: 80.0
  • Valid Range: 0.0-100.0
  • System Impact: At 80%, the worker stops accepting new steps when 80% of max_concurrent_handlers are busy

worker.mpsc_channels.handler_dispatch.load_shedding.enabled

Enable load shedding to refuse step claims when handler capacity is nearly exhausted

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When true, the worker refuses new step claims above the capacity threshold to prevent overload

worker.mpsc_channels.handler_dispatch.load_shedding.warning_threshold_percent

Handler capacity percentage at which warning logs are emitted

  • Type: f64
  • Default: 70.0
  • Valid Range: 0.0-100.0
  • System Impact: Observability: alerts operators that the worker is approaching its capacity limit

in_process_events

Path: worker.mpsc_channels.in_process_events

ParameterTypeDefaultDescription
broadcast_buffer_sizeusize2000Bounded broadcast channel capacity for in-process domain event delivery
dispatch_timeout_msu325000Maximum time in milliseconds to wait when dispatching an in-process event
log_subscriber_errorsbooltrueLog errors when in-process event subscribers fail to receive events

worker.mpsc_channels.in_process_events.broadcast_buffer_size

Bounded broadcast channel capacity for in-process domain event delivery

  • Type: usize
  • Default: 2000
  • Valid Range: 100-100000
  • System Impact: Controls how many domain events can be buffered before slow subscribers cause backpressure

worker.mpsc_channels.in_process_events.dispatch_timeout_ms

Maximum time in milliseconds to wait when dispatching an in-process event

  • Type: u32
  • Default: 5000
  • Valid Range: 100-60000
  • System Impact: Prevents event dispatch from blocking indefinitely if all subscribers are slow

worker.mpsc_channels.in_process_events.log_subscriber_errors

Log errors when in-process event subscribers fail to receive events

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: Observability: helps identify slow or failing event subscribers

orchestration_client

Path: worker.orchestration_client

ParameterTypeDefaultDescription
base_urlString"http://localhost:8080"Base URL of the orchestration REST API that this worker reports to
max_retriesu323Maximum retry attempts for failed orchestration API calls
timeout_msu3230000HTTP request timeout in milliseconds for orchestration API calls

worker.orchestration_client.base_url

Base URL of the orchestration REST API that this worker reports to

  • Type: String
  • Default: "http://localhost:8080"
  • Valid Range: valid HTTP(S) URL
  • System Impact: Workers send step completion results and health reports to this endpoint

Environment Recommendations:

EnvironmentValueRationale
productionhttp://orchestration:8080Container-internal DNS in Kubernetes/Docker
testhttp://localhost:8080Local orchestration for testing

Related: orchestration.web.bind_address

worker.orchestration_client.max_retries

Maximum retry attempts for failed orchestration API calls

  • Type: u32
  • Default: 3
  • Valid Range: 0-10
  • System Impact: Retries use backoff; higher values improve resilience to transient network issues

worker.orchestration_client.timeout_ms

HTTP request timeout in milliseconds for orchestration API calls

  • Type: u32
  • Default: 30000
  • Valid Range: 100-300000
  • System Impact: Worker-to-orchestration calls exceeding this timeout fail and may be retried

web

Path: worker.web

ParameterTypeDefaultDescription
bind_addressString"${TASKER_WEB_BIND_ADDRESS:-0.0.0.0:8081}"Socket address for the worker REST API server
enabledbooltrueEnable the REST API server for the worker service
request_timeout_msu3230000Maximum time in milliseconds for a worker HTTP request to complete before timeout

worker.web.bind_address

Socket address for the worker REST API server

  • Type: String
  • Default: "${TASKER_WEB_BIND_ADDRESS:-0.0.0.0:8081}"
  • Valid Range: host:port
  • System Impact: Must not conflict with orchestration.web.bind_address when co-located; default 8081

Environment Recommendations:

EnvironmentValueRationale
production0.0.0.0:8081Standard worker port; use TASKER_WEB_BIND_ADDRESS env var to override
test0.0.0.0:8081Default port offset from orchestration (8080)

worker.web.enabled

Enable the REST API server for the worker service

  • Type: bool
  • Default: true
  • Valid Range: true/false
  • System Impact: When false, no HTTP endpoints are available; the worker operates via messaging only

worker.web.request_timeout_ms

Maximum time in milliseconds for a worker HTTP request to complete before timeout

  • Type: u32
  • Default: 30000
  • Valid Range: 100-300000
  • System Impact: Requests exceeding this timeout return HTTP 408; protects against slow client connections

auth

Path: worker.web.auth

ParameterTypeDefaultDescription
api_keyString""Static API key for simple key-based authentication on the worker API
api_key_headerString"X-API-Key"HTTP header name for API key authentication on the worker API
enabledboolfalseEnable authentication for the worker REST API
jwt_audienceString"worker-api"Expected ‘aud’ claim in JWT tokens for the worker API
jwt_issuerString"tasker-worker"Expected ‘iss’ claim in JWT tokens for the worker API
jwt_private_keyString""PEM-encoded private key for signing JWT tokens (if the worker issues tokens)
jwt_public_keyString"${TASKER_JWT_PUBLIC_KEY:-}"PEM-encoded public key for verifying JWT token signatures on the worker API
jwt_public_key_pathString"${TASKER_JWT_PUBLIC_KEY_PATH:-}"File path to a PEM-encoded public key for worker JWT verification
jwt_token_expiry_hoursu3224Default JWT token validity period in hours for worker API tokens

worker.web.auth.api_key

Static API key for simple key-based authentication on the worker API

  • Type: String
  • Default: ""
  • Valid Range: non-empty string or empty to disable
  • System Impact: When non-empty and auth is enabled, clients can authenticate by sending this key in the api_key_header

worker.web.auth.api_key_header

HTTP header name for API key authentication on the worker API

  • Type: String
  • Default: "X-API-Key"
  • Valid Range: valid HTTP header name
  • System Impact: Clients send their API key in this header; default is X-API-Key

worker.web.auth.enabled

Enable authentication for the worker REST API

  • Type: bool
  • Default: false
  • Valid Range: true/false
  • System Impact: When false, all worker API endpoints are unauthenticated

worker.web.auth.jwt_audience

Expected ‘aud’ claim in JWT tokens for the worker API

  • Type: String
  • Default: "worker-api"
  • Valid Range: non-empty string
  • System Impact: Tokens with a different audience are rejected during validation

worker.web.auth.jwt_issuer

Expected ‘iss’ claim in JWT tokens for the worker API

  • Type: String
  • Default: "tasker-worker"
  • Valid Range: non-empty string
  • System Impact: Tokens with a different issuer are rejected; default ‘tasker-worker’ distinguishes worker tokens from orchestration tokens

worker.web.auth.jwt_private_key

PEM-encoded private key for signing JWT tokens (if the worker issues tokens)

  • Type: String
  • Default: ""
  • Valid Range: valid PEM private key or empty
  • System Impact: Required only if the worker service issues its own JWT tokens; typically empty

worker.web.auth.jwt_public_key

PEM-encoded public key for verifying JWT token signatures on the worker API

  • Type: String
  • Default: "${TASKER_JWT_PUBLIC_KEY:-}"
  • Valid Range: valid PEM public key or empty
  • System Impact: Required for JWT validation; prefer jwt_public_key_path for file-based key management

worker.web.auth.jwt_public_key_path

File path to a PEM-encoded public key for worker JWT verification

  • Type: String
  • Default: "${TASKER_JWT_PUBLIC_KEY_PATH:-}"
  • Valid Range: valid file path or empty
  • System Impact: Alternative to inline jwt_public_key; supports key rotation by replacing the file

worker.web.auth.jwt_token_expiry_hours

Default JWT token validity period in hours for worker API tokens

  • Type: u32
  • Default: 24
  • Valid Range: 1-720
  • System Impact: Tokens older than this are rejected; shorter values improve security

database_pools

Path: worker.web.database_pools

ParameterTypeDefaultDescription
max_total_connections_hintu3225Advisory hint for the total number of database connections across all worker pools
web_api_connection_timeout_secondsu3230Maximum time to wait when acquiring a connection from the worker web API pool
web_api_idle_timeout_secondsu32600Time before an idle worker web API connection is closed
web_api_max_connectionsu3215Maximum number of connections the worker web API pool can grow to under load
web_api_pool_sizeu3210Target number of connections in the worker web API database pool

worker.web.database_pools.max_total_connections_hint

Advisory hint for the total number of database connections across all worker pools

  • Type: u32
  • Default: 25
  • Valid Range: 1-1000
  • System Impact: Used for capacity planning; not enforced but logged if actual connections exceed this hint

worker.web.database_pools.web_api_connection_timeout_seconds

Maximum time to wait when acquiring a connection from the worker web API pool

  • Type: u32
  • Default: 30
  • Valid Range: 1-300
  • System Impact: Worker API requests that cannot acquire a connection within this window return an error

worker.web.database_pools.web_api_idle_timeout_seconds

Time before an idle worker web API connection is closed

  • Type: u32
  • Default: 600
  • Valid Range: 1-3600
  • System Impact: Controls how quickly the worker web API pool shrinks after traffic subsides

worker.web.database_pools.web_api_max_connections

Maximum number of connections the worker web API pool can grow to under load

  • Type: u32
  • Default: 15
  • Valid Range: 1-500
  • System Impact: Hard ceiling for worker web API database connections

worker.web.database_pools.web_api_pool_size

Target number of connections in the worker web API database pool

  • Type: u32
  • Default: 10
  • Valid Range: 1-200
  • System Impact: Determines how many concurrent database queries the worker REST API can execute; smaller than orchestration

Generated by tasker-ctl docsTasker Configuration System