Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Queue Autoscale Laravel Package

cboxdk/laravel-queue-autoscale

Laravel Queue Autoscale automatically adjusts the number of queue workers to match your workload, scaling up when queues back up and down when they're idle so jobs keep processing promptly while you avoid paying for idle workers.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: The package sits directly on Laravel’s queue subsystem and console layer. v4.6.1 is a patch-level correctness release that improves how custom queue drivers registered through Queue::extend() are classified. Instead of judging a connection solely by its custom driver name, the package now resolves the custom driver once per process and evaluates it as the built-in queue it extends. This is the right architectural direction for Laravel applications that wrap SQS, Redis, Database, Background, Sync, Deferred, or Null queues with custom drivers.
  • Integration feasibility: Low integration friction. There are no configuration changes. Built-in driver connections are never resolved and behave exactly as before. Custom drivers extending built-in queues become correctly recognised in workload reporting, queue:autoscale:doctor SQS checks, engine/cluster summaries, console output, oldest-job-age reporting, and breach/recovery handling. The added Support\QueueDriver::of() exposes the built-in driver a connection behaves as, which is useful for diagnostics and future integration work.
  • Technical risk: Medium-low. The main behavioral change is that a custom driver extending a built-in queue is now treated as that built-in queue. If a custom driver extends a built-in driver but overrides semantics substantially, classification may not match operational intent. Resolution failure, such as a broker being down or missing credentials, falls back to judgment by driver name and is not retried until process restart. Holding one resolved instance of each custom connection open for the process lifetime can affect long-running autoscale workers, connection limits, and credential rotation. Restarting every queue:autoscale after upgrade is required. The cboxdk/laravel-queue-metrics 3.5.1 change is test-only.
  • Key questions: Which custom queue drivers are registered via Queue::extend()? Do they extend a built-in queue or only implement the contract? Are queue:autoscale processes long-lived under Supervisor/systemd? What are the connection limits and credential-rotation expectations for SQS, Redis, and Database connections? How should operators detect and recover from a failed first resolution that will not retry until restart? Does the custom driver preserve the parent driver’s oldest-job-age and breach semantics? Are there multi-tenant or dynamically credentialed connections that make per-process caching risky?

Integration Approach

  • Stack fit: Fits standard Laravel queue deployments, especially those using SQS, Redis, or Database queues with custom driver wrappers. No new infrastructure is introduced. The package remains a Laravel-native console and queue-manager integration.
  • Migration path: Upgrade via Composer to v4.6.1, then restart all queue:autoscale processes. No config migration is needed. Before production rollout, inventory every custom queue driver and confirm whether it extends SqsQueue, RedisQueue, DatabaseQueue, BackgroundQueue, SyncQueue, DeferredQueue, or NullQueue. Run queue:autoscale:doctor in staging and validate that custom-driver queues are reported under the expected built-in behavior.
  • Compatibility: Built-in driver connections are unchanged. Custom drivers extending built-in queues are now classified by their parent. Custom drivers that cannot be resolved, or that extend no built-in queue, retain the previous driver-name behavior. The test suite is verified against cboxdk/laravel-queue-metrics 3.5.1, but that is a test-only compatibility update, not a runtime requirement change.
  • Sequencing: Inventory custom drivers first; stage the Composer upgrade; restart autoscale processes in staging; run queue:autoscale:doctor; monitor one full autoscale and metrics cycle; then perform a rolling production upgrade with explicit process restarts. After rollout, confirm connection counts, doctor output, and breach/recovery behavior for custom-driver queues.

Operational Impact

  • Maintenance: Low ongoing maintenance. This is a targeted patch with no deprecations and no configuration changes. The new Support\QueueDriver::of() method is additive. The main maintenance obligation is process hygiene: every queue:autoscale process must be restarted after upgrade so the new resolution behavior takes effect.
  • Support: Supportability improves for custom drivers because false workload, skipped SQS checks, missing oldest-job-age reporting, and incorrect breach states are addressed. However, operators need a runbook entry for resolution failures: if the broker is unavailable or credentials are missing at first resolution, the package falls back to driver-name judgment and will not retry until process restart. The doctor command should be the first diagnostic step after any custom-driver anomaly.
  • Scaling: Resolving once per process reduces repeated resolution overhead. The trade-off is that each custom connection keeps one resolved instance open for the process lifetime. In large autoscale fleets, this can increase open connections and interact with broker connection limits, idle timeouts, and credential rotation. Built-in driver connections are unaffected. Capacity planning should account for one long-lived resolved connection per custom driver per autoscale process.
  • Failure modes: The primary failure modes are unresolved custom drivers at startup, custom drivers that extend a built-in queue but do not preserve its reporting semantics, stale long-lived connections, credential expiry after process start, and connection-limit exhaustion across many workers. A failed first resolution is cached until process restart, so recovery may require restarting the autoscale worker rather than waiting for automatic retry. Misclassification can surface as incorrect workload, breach, or doctor output.
  • Ramp-up: Low for teams already running Laravel queues. Developers need to understand Queue::extend() custom-driver inventory and the new Support\QueueDriver::of() behavior. SRE/operations need a short runbook covering restart-after-upgrade, queue:autoscale:doctor validation, connection-count monitoring, and restart procedures for failed driver resolution.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource