Configuration Reference: orchestration
91/91 parameters documented
orchestration
Root-level orchestration parameters
Path: orchestration
| Parameter | Type | Default | Description |
|---|---|---|---|
enable_performance_logging | bool | true | Enable detailed performance logging for orchestration actors |
shutdown_timeout_ms | u64 | 30000 | Maximum 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
| Parameter | Type | Default | Description |
|---|---|---|---|
checkpoint_stall_minutes | u32 | 15 | Minutes without a checkpoint update before a batch is considered stalled |
default_batch_size | u32 | 1000 | Default number of items in a single batch when not specified by the handler |
enabled | bool | true | Enable the batch processing subsystem for large-scale step execution |
max_parallel_batches | u32 | 50 | Maximum 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
| Parameter | Type | Default | Description |
|---|---|---|---|
enable_detailed_logging | bool | false | Enable verbose logging of decision point evaluation including expression results |
enable_metrics | bool | true | Enable metrics collection for decision point evaluations |
enabled | bool | true | Enable the decision point evaluation subsystem for conditional workflow branching |
max_decision_depth | u32 | 20 | Maximum depth of nested decision point chains |
max_steps_per_decision | u32 | 100 | Maximum number of steps that can be generated by a single decision point evaluation |
warn_threshold_depth | u32 | 10 | Decision depth above which a warning is logged |
warn_threshold_steps | u32 | 50 | Number 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
| Parameter | Type | Default | Description |
|---|---|---|---|
enabled | bool | true | Enable 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
| Parameter | Type | Default | Description |
|---|---|---|---|
batch_size | u32 | 100 | Number of potentially stale tasks to evaluate in a single detection sweep |
detection_interval_seconds | u32 | 300 | Interval in seconds between staleness detection sweeps |
dry_run | bool | false | Run staleness detection in observation-only mode without taking action |
enabled | bool | true | Enable 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
| Parameter | Type | Default | Description |
|---|---|---|---|
auto_move_to_dlq | bool | true | Automatically move stale tasks to the DLQ after transitioning to error |
auto_transition_to_error | bool | true | Automatically transition stale tasks to the Error state |
emit_events | bool | true | Emit domain events when staleness is detected |
event_channel | String | "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
| Parameter | Type | Default | Description |
|---|---|---|---|
steps_in_process_minutes | u32 | 30 | Minutes a task can have steps in process before being considered stale |
task_max_lifetime_hours | u32 | 24 | Absolute maximum lifetime for any task regardless of state |
waiting_for_dependencies_minutes | u32 | 60 | Minutes a task can wait for step dependencies before being considered stale |
waiting_for_retry_minutes | u32 | 30 | Minutes 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
| Parameter | Type | Default | Description |
|---|---|---|---|
deployment_mode | DeploymentMode | "Hybrid" | Event delivery mode: ‘Hybrid’ (LISTEN/NOTIFY + polling fallback), ‘EventDrivenOnly’, or ‘PollingOnly’ |
system_id | String | "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
| Parameter | Type | Default | Description |
|---|---|---|---|
enabled | bool | true | Enable health monitoring for the orchestration event system |
error_rate_threshold_per_minute | u32 | 20 | Error rate per minute above which the event system reports as unhealthy |
max_consecutive_errors | u32 | 10 | Number of consecutive errors before the event system reports as unhealthy |
performance_monitoring_enabled | bool | true | Enable 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
| Parameter | Type | Default | Description |
|---|---|---|---|
batch_size | u32 | 20 | Number of events dequeued in a single batch read |
max_concurrent_operations | u32 | 50 | Maximum number of events processed concurrently by the orchestration event system |
max_retries | u32 | 3 | Maximum 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
| Parameter | Type | Default | Description |
|---|---|---|---|
initial_delay_ms | u64 | 100 | Initial backoff delay in milliseconds after first event processing failure |
jitter_percent | f64 | 0.1 | Maximum jitter as a fraction of the computed backoff delay |
max_delay_ms | u64 | 10000 | Maximum backoff delay in milliseconds between event processing retries |
multiplier | f64 | 2.0 | Multiplier applied to the backoff delay after each consecutive failure |
timing
Path: orchestration.event_systems.orchestration.timing
| Parameter | Type | Default | Description |
|---|---|---|---|
claim_timeout_seconds | u32 | 300 | Maximum time in seconds an event claim remains valid |
fallback_polling_interval_seconds | u32 | 5 | Interval in seconds between fallback polling cycles when LISTEN/NOTIFY is unavailable |
health_check_interval_seconds | u32 | 30 | Interval in seconds between health check probes for the orchestration event system |
processing_timeout_seconds | u32 | 60 | Maximum time in seconds allowed for processing a single event |
visibility_timeout_seconds | u32 | 30 | Time 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
| Parameter | Type | Default | Description |
|---|---|---|---|
deployment_mode | DeploymentMode | "Hybrid" | Event delivery mode for task readiness: ‘Hybrid’, ‘EventDrivenOnly’, or ‘PollingOnly’ |
system_id | String | "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
| Parameter | Type | Default | Description |
|---|---|---|---|
enabled | bool | true | Enable health monitoring for the task readiness event system |
error_rate_threshold_per_minute | u32 | 20 | Error rate per minute above which the task readiness system reports as unhealthy |
max_consecutive_errors | u32 | 10 | Number of consecutive errors before the task readiness system reports as unhealthy |
performance_monitoring_enabled | bool | true | Enable 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
| Parameter | Type | Default | Description |
|---|---|---|---|
batch_size | u32 | 50 | Number of task readiness events dequeued in a single batch |
max_concurrent_operations | u32 | 100 | Maximum number of task readiness events processed concurrently |
max_retries | u32 | 3 | Maximum 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
| Parameter | Type | Default | Description |
|---|---|---|---|
initial_delay_ms | u64 | 100 | Initial backoff delay in milliseconds after first task readiness processing failure |
jitter_percent | f64 | 0.1 | Maximum jitter as a fraction of the computed backoff delay for readiness retries |
max_delay_ms | u64 | 10000 | Maximum backoff delay in milliseconds for task readiness retries |
multiplier | f64 | 2.0 | Multiplier applied to the backoff delay after each consecutive readiness failure |
timing
Path: orchestration.event_systems.task_readiness.timing
| Parameter | Type | Default | Description |
|---|---|---|---|
claim_timeout_seconds | u32 | 300 | Maximum time in seconds a task readiness event claim remains valid |
fallback_polling_interval_seconds | u32 | 5 | Interval in seconds between fallback polling cycles for task readiness |
health_check_interval_seconds | u32 | 30 | Interval in seconds between health check probes for the task readiness event system |
processing_timeout_seconds | u32 | 60 | Maximum time in seconds allowed for processing a single task readiness event |
visibility_timeout_seconds | u32 | 30 | Time 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
| Parameter | Type | Default | Description |
|---|---|---|---|
bind_address | String | "${TASKER_ORCHESTRATION_GRPC_BIND_ADDRESS:-0.0.0.0:9190}" | Socket address for the gRPC server |
enable_health_service | bool | true | Enable the gRPC health checking service (grpc.health.v1) |
enable_reflection | bool | true | Enable gRPC server reflection for service discovery |
enabled | bool | true | Enable the gRPC API server alongside the REST API |
keepalive_interval_seconds | u32 | 30 | Interval in seconds between gRPC keepalive ping frames |
keepalive_timeout_seconds | u32 | 20 | Time in seconds to wait for a keepalive ping acknowledgment before closing the connection |
max_concurrent_streams | u32 | 200 | Maximum number of concurrent gRPC streams per connection |
max_frame_size | u32 | 16384 | Maximum size in bytes of a single HTTP/2 frame |
tls_enabled | bool | false | Enable 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
| Parameter | Type | Default | Description |
|---|---|---|---|
command_buffer_size | usize | 5000 | Bounded 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
| Parameter | Type | Default | Description |
|---|---|---|---|
pgmq_event_buffer_size | usize | 50000 | Bounded 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
| Parameter | Type | Default | Description |
|---|---|---|---|
event_channel_buffer_size | usize | 10000 | Bounded 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
| Parameter | Type | Default | Description |
|---|---|---|---|
bind_address | String | "${TASKER_WEB_BIND_ADDRESS:-0.0.0.0:8080}" | Socket address for the REST API server |
enabled | bool | true | Enable the REST API server for the orchestration service |
request_timeout_ms | u32 | 30000 | Maximum 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:
| Environment | Value | Rationale |
|---|---|---|
| production | 0.0.0.0:8080 | Standard port; use TASKER_WEB_BIND_ADDRESS env var to override in CI |
| test | 0.0.0.0:8080 | Default 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
| Parameter | Type | Default | Description |
|---|---|---|---|
api_key | String | "" | Static API key for simple key-based authentication |
api_key_header | String | "X-API-Key" | HTTP header name for API key authentication |
enabled | bool | false | Enable authentication for the REST API |
jwt_audience | String | "tasker-api" | Expected ‘aud’ claim in JWT tokens |
jwt_issuer | String | "tasker-core" | Expected ‘iss’ claim in JWT tokens |
jwt_private_key | String | "" | PEM-encoded private key for signing JWT tokens (if this service issues tokens) |
jwt_public_key | String | "${TASKER_JWT_PUBLIC_KEY:-}" | PEM-encoded public key for verifying JWT token signatures |
jwt_public_key_path | String | "${TASKER_JWT_PUBLIC_KEY_PATH:-}" | File path to a PEM-encoded public key for JWT verification |
jwt_token_expiry_hours | u32 | 24 | Default 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
| Parameter | Type | Default | Description |
|---|---|---|---|
max_total_connections_hint | u32 | 50 | Advisory hint for the total number of database connections across all orchestration pools |
web_api_connection_timeout_seconds | u32 | 30 | Maximum time to wait when acquiring a connection from the web API pool |
web_api_idle_timeout_seconds | u32 | 600 | Time before an idle web API connection is closed |
web_api_max_connections | u32 | 30 | Maximum number of connections the web API pool can grow to under load |
web_api_pool_size | u32 | 20 | Target 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 docs — Tasker Configuration System