Skip to content

Requirements

Requirements

Before installing Queue Autoscale for Laravel, ensure your environment meets these prerequisites.

Runtime

Requirement Version
PHP 8.3, 8.4, or 8.5
Laravel 11.0+, 12.0+, or 13.0+
Composer Latest version recommended

PHP Extensions

No additional PHP extensions are required beyond what Laravel itself needs. If you enable cluster mode, the phpredis extension or predis/predis package is required for Redis connectivity.

Package Dependencies

These are installed automatically via Composer:

Package Version Purpose
cboxdk/laravel-queue-metrics ^2.0 Queue discovery and metrics collection
cboxdk/system-metrics ^1.2 CPU and memory monitoring for resource-aware scaling
symfony/process ^7.0 | ^8.0 Worker process spawning and management
spatie/laravel-package-tools ^1.16 Service provider conventions

Infrastructure

Redis (optional)

Redis is not required for single-host autoscaling. The package works with any Laravel-supported queue driver (database, sqs, redis, etc.).

Redis is required when:

  • Cluster mode is enabled (multi-host coordination, leader election, heartbeats)
  • You want Redis-backed predictive signals on a single host (pickup-time percentiles, spawn-latency tracking)

See Installation for deployment shape options.

Process Supervisor (production)

In production, use Supervisor or systemd to keep the php artisan queue:autoscale manager process running and to restart it on failure. The autoscale manager replaces manual queue:work process management — you do not need Supervisor entries for individual queue workers.

See Deployment Guides for platform-specific setup.

SLA Timing Floor

The autoscaler operates within the timing constraints of Laravel's queue worker internals. There is a hard floor on how fast jobs can be picked up:

~3-5 seconds minimum pickup time — even with a running worker, Laravel's queue:work command has an internal sleep/poll loop (sleep_seconds, default 3s) plus job pickup overhead. SLA targets below 5 seconds will produce flaky breach events. This is expected behaviour, not a bug.

~8-12 seconds from zero — profiles with workers.min = 0 add the evaluation interval (default 5s) and worker spawn latency on top of the poll floor.

Setting sla.target_seconds below 5 is not recommended. See Understanding SLA Timing for the full explanation.

Next Steps

Ready to install? Follow the Installation guide.