Weave Code
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

Horizon Laravel Package

laravel/horizon

Laravel Horizon adds a polished dashboard and code-driven configuration for Laravel Redis queues. Monitor throughput, runtimes, and failed jobs, and manage all worker and supervisor settings from a single config file kept in source control.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

Laravel Horizon (v5.47.0) remains a first-class solution for Redis-based queue management in Laravel, with no architectural changes in this release. Key strengths persist:

  • Observability: Real-time dashboard for job throughput, failures, and runtime metrics (unchanged).
  • Configuration-Driven: Centralized horizon.php for team collaboration (unchanged).
  • Scalability: Continued support for Redis Cluster and batch processing (no new features).
  • Extensibility: Customizable supervisors, job tagging, and silent tags (unchanged).

Key Fit Criteria (Unchanged): ✅ Redis Dependency: Optimized for Redis (no support for database/beanstalkd queues). ✅ Laravel Ecosystem: Native integration with Laravel jobs/middleware. ✅ Monitoring Needs: Ideal for high-visibility async workflows (e.g., order processing).


Integration Feasibility

  • No Breaking Changes: Dependabot updates (postcss, axios) are non-critical (frontend assets only).
  • Queue Backend: Still Redis-only; migration from other backends remains required.
  • Worker Process: Replaces queue:work with horizon:work (no changes to workflow).
  • Middleware/Jobs: Zero impact on existing Laravel jobs (unchanged).

Compatibility Notes (Unchanged):

  • Laravel 10+: Officially supported (v5.44.0+).
  • PHP 8.5: Backward-compatible (v5.40.1+).
  • Supervisor: Horizon replaces Supervisor/Foreman (unchanged).

Technical Risk

Risk Area Assessment Mitigation Strategy
Redis Dependency Hard dependency on Redis (unchanged). Audit queue usage; test Redis performance under load.
Worker Process Model Horizon replaces queue:work (unchanged). Pilot in staging; monitor job throughput.
Dashboard Overhead Web UI assets updated via Dependabot (v5.47.0); negligible impact. Pre-warm Horizon cache; use CDN for production.
Configuration Drift Centralized horizon.php (unchanged). Enforce CI checks for config validation.
Legacy Jobs No changes to job handling (unchanged). Test with critical jobs pre-migration.

New Risks (v5.47.0):

  • Frontend Asset Updates: Minor postcss/axios bumps may require Vite rebuilds if customizing dashboard. Mitigation: Test dashboard UI post-update in staging.

Key Questions for TPM (Updated)

  1. Queue Backend: "Are all critical queues Redis-based? If not, can we migrate or use Horizon only for high-priority queues?" (Unchanged)
  2. Worker Scaling: "How will Horizon’s supervisor model impact our current scaling strategy?" (Unchanged)
  3. Dashboard Customizations: "Do we override Horizon’s frontend assets (e.g., resources/js/horizon)? If yes, test Vite rebuilds post-update." (New)
  4. Rollback Plan: "What’s the fallback if Horizon introduces instability (e.g., Redis issues)?" (Unchanged)
  5. Team Adoption: "How will we train teams to use the dashboard vs. CLI tools?" (Unchanged)

Integration Approach

Stack Fit

Horizon (v5.47.0) remains optimized for:

  • Laravel 10+ (PHP 8.1+).
  • Redis 6.0+ (or Redis Cluster).
  • Monolithic/Lumen Apps: Native integration (unchanged).

Anti-Patterns (Unchanged): ❌ Non-Redis Queues: Still incompatible with database/beanstalkd. ❌ Headless Workers: Dashboard may feel redundant if relying solely on CLI.


Migration Path (Unchanged)

Phase Action Items Tools/Commands
Prep Audit queues; benchmark Redis. php artisan queue:failed-table.
Install composer require laravel/horizon, php artisan horizon:install.
Configure Define supervisors in horizon.php. Template.
Test Validate jobs route through Horizon; monitor dashboard. php artisan horizon:terminate, php artisan horizon:flush.
Deploy Replace queue:work with horizon:work. Supervisor: horizon:work --daemon.
Optimize Tune supervisors; set up alerts. php artisan horizon:monitor.

Critical Path (Unchanged):

  1. Pilot in staging.
  2. Gradual cutover.
  3. Customize dashboard views.

New Consideration (v5.47.0):

  • Frontend Testing: If customizing Horizon’s Vite assets, rebuild and test dashboard UI post-update:
    npm run dev  # or `npm run build` for production
    

Compatibility (Unchanged)

Component Compatibility Notes
Laravel Jobs Zero changes needed.
Middleware Works as-is.
Delayed Jobs Fixed in v5.45.5 ($later support).
Supervisor Horizon replaces Supervisor.
Redis Supports Redis Cluster (v5.46.0+).

Sequencing (Unchanged)

  1. Phase 1: Replace queue:work for non-critical queues.
  2. Phase 2: Migrate high-priority queues; validate metrics.
  3. Phase 3: Full cutover; monitor horizon:failed.

Rollback (Unchanged):

  • Fallback to php artisan queue:work (loses dashboard features).

Operational Impact

Maintenance (Updated)

Task Horizon Impact Frequency
Configuration Centralized in horizon.php (version-controlled). Per release cycle.
Updates Minor updates via composer update; test Vite assets if customizing dashboard. Quarterly.
Dashboard Custom views in resources/views/vendor/horizon (unchanged). As needed.
Redis ~10–20% Redis memory usage for job metadata (unchanged). Monitor regularly.

Proactive Maintenance (Updated):

  • Cache Warming: Run php artisan horizon:flush post-deploy.
  • Config Validation: CI checks for horizon.php.
  • Frontend Assets: After composer update, rebuild Vite if customizing:
    npm install && npm run dev
    

Support (Unchanged)

  • Troubleshooting Tools: Dashboard filters, horizon:retry, horizon:monitor.
  • Common Issues:
    • Redis drops: Monitor horizon:failed.
    • Worker stalls: Use horizon:reload (v5.40.2+).
    • Dashboard lag: Increase monitoring_interval.

Support Matrix (Unchanged):

Issue Type Horizon Tooling Workaround
Job Failures Dashboard filters, horizon:retry. Manual retry via CLI.
High Memory Usage horizon:flush to clear old jobs. Tune max_jobs in supervisors.
Dashboard Slowdown Increase monitoring_interval or optimize Redis. Use horizon:listen --min-processes=1.

Scaling (Unchanged)

  • Horizontal Scaling: Add supervisors via supervisor:count in horizon.php.
  • Redis Cluster: Supported (v5.46.0+); test with redis-cli --cluster.
  • Batch Processing: Unchanged (v5.45.0+ feature).

No Changes in v5.47.0: Dependabot updates are frontend-only and do not affect scaling.

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.
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope
anil/file-picker
broqit/fields-ai