[redis]
url = "rediss://redis-cluster.production.com:6380"
pool_size = 20
connection_timeout = 10
command_timeout = 5
[workers]
initial_count = 10
max_concurrent_tasks = 25
heartbeat_interval = 30
shutdown_grace_period = 120
[autoscaler]
enabled = true
min_workers = 5
max_workers = 50
scale_up_count = 2
scale_down_count = 1
[autoscaler.scaling_triggers]
queue_pressure_threshold = 1.2
worker_utilization_threshold = 0.85
task_complexity_threshold = 2.0
error_rate_threshold = 0.03
memory_pressure_threshold = 1024.0
enable_adaptive_thresholds = true
learning_rate = 0.05
adaptation_window_minutes = 60
scale_up_cooldown_seconds = 180
scale_down_cooldown_seconds = 900
consecutive_signals_required = 3
[autoscaler.target_sla]
max_p95_latency_ms = 3000.0
min_success_rate = 0.99
max_queue_wait_time_ms = 5000.0
target_worker_utilization = 0.75
[scheduler]
enabled = true
tick_interval = 30
max_tasks_per_tick = 100
[auto_register]
enabled = true
[metrics]
enabled = true
export_interval = 60
retention_days = 30
enable_alerts = true
collect_scaling_metrics = true
collect_sla_metrics = true
collect_adaptive_threshold_metrics = true
scaling_metrics_resolution = 30
[alerts]
max_queue_size = 10000
max_error_rate = 0.05
max_task_duration_ms = 300000
max_memory_usage_mb = 2048
max_worker_idle_time_sec = 600
max_queue_pressure_score = 2.0
min_worker_utilization = 0.10
max_worker_utilization = 0.95
max_scaling_frequency_per_hour = 10
min_sla_success_rate = 0.98
max_p95_latency_breach_ms = 5000
[security]
max_payload_size_mb = 16
enable_input_validation = true
allowed_queue_patterns = ["^[a-zA-Z0-9_-]+$"]
rate_limiting = true
max_requests_per_minute = 1000
[logging]
level = "info"
format = "json"
enable_metrics_logging = true
log_sensitive_data = false
[health_checks]
enabled = true
port = 8080
path = "/health"
include_detailed_metrics = false
timeout_ms = 5000
[actix]
auto_configure_routes = true
route_prefix = "/api/v1/tasks"
enable_metrics = true
enable_health_check = true
cors_enabled = true
cors_origins = ["https://dashboard.company.com"]
rate_limit_requests_per_minute = 100