Laravel Horizon

Queue supervisor and dashboard for Laravel — provides a beautiful web UI for monitoring Redis queues, configuring workers, and managing failed jobs. Horizon features: real-time queue metrics (jobs/min, wait time, throughput), worker configuration via config/horizon.php (supervisor processes, queue priorities, max jobs per worker), job tags for filtering, job retry from dashboard, failed job alerts, job metrics history, and Supervisor-compatible process management. Horizon supervises worker processes automatically, maintaining configured worker count. Requires Redis queue driver. Alternative to plain `php artisan queue:work` with process management and observability.

Evaluated Mar 06, 2026 (0d ago) v5.x
Homepage ↗ Repo ↗ Developer Tools php laravel queue redis horizon monitoring workers dashboard
⚙ Agent Friendliness
66
/ 100
Can an agent use this?
🔒 Security
85
/ 100
Is it safe for agents?
⚡ Reliability
90
/ 100
Does it work consistently?

Score Breakdown

⚙ Agent Friendliness

MCP Quality
--
Documentation
90
Error Messages
85
Auth Simplicity
88
Rate Limits
90

🔒 Security

TLS Enforcement
88
Auth Strength
85
Scope Granularity
82
Dep. Hygiene
88
Secret Handling
82

Horizon dashboard exposes all job payloads (may contain agent data/credentials) — always gate with authentication. Job payloads stored in Redis — use Redis AUTH and TLS for agent production Redis. Avoid storing sensitive agent data in job payloads; pass IDs and fetch from database in job handler.

⚡ Reliability

Uptime/SLA
92
Version Stability
90
Breaking Changes
88
Error Recovery
88
AF Security Reliability

Best When

Your Laravel agent platform uses Redis queues and you need production-grade worker management, real-time queue monitoring, and easy failed job handling — Horizon is the first-party queue dashboard for Laravel.

Avoid When

You're not using Redis queue driver, you need cross-service queue monitoring, or your queue setup is simple enough for direct queue:work supervision.

Use Cases

  • Agent job queue monitoring dashboard — Horizon dashboard at /horizon shows real-time agent job throughput, wait times, and failed jobs; operations team monitors agent task processing health without CLI access
  • Priority queue configuration for agents — horizon.php supervisors config: agents-critical queue (3 workers, max 1 job/worker) runs alongside agents-default queue (1 worker); critical agent tasks never wait behind bulk processing
  • Failed agent job investigation — Horizon captures failed agent jobs with full payload, exception, and stack trace; retry failed jobs from dashboard or via php artisan horizon:clear for bulk cleanup
  • Auto-scaling agent workers — Horizon balancing: 'auto' dynamically scales workers based on queue depth; agent burst loads automatically get more workers; idle periods release workers reducing server load
  • Agent job tagging for filtering — implement tags() method on AgentJob returning ['agent:'.$this->agentId, 'tenant:'.$this->tenantId] enables Horizon dashboard filtering by agent or tenant for multi-tenant agent platform monitoring

Not For

  • Non-Redis queue drivers — Horizon requires Redis; for Laravel agent apps on database or SQS queue drivers, use Laravel Telescope for job monitoring or SQS console
  • Non-supervisor deployments — Horizon manages php artisan horizon as primary process; in Docker containers without Supervisor, run horizon as CMD directly; for complex multi-service Docker Compose agent setups, configure horizon restart policy
  • Simple single-queue setups — if agent app has one queue and straightforward processing, php artisan queue:work with Supervisor is simpler than Horizon's overhead

Interface

REST API
No
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No

Authentication

Methods: session
OAuth: No Scopes: No

Horizon dashboard gated by HorizonServiceProvider::gate callback. Define in AuthServiceProvider: Horizon::auth(function ($request) { return Auth::user()?->isAdmin(); }). Dashboard protected from unauthorized agent platform users.

Pricing

Model: open_source
Free tier: Yes
Requires CC: No

Laravel Horizon is MIT licensed, maintained by Laravel team. Free for all use.

Agent Metadata

Pagination
none
Idempotent
Partial
Retry Guidance
Documented

Known Gotchas

  • Horizon must restart after config changes — horizon.php config changes (new supervisor, queue priorities) require php artisan horizon:terminate followed by Supervisor restart of Horizon; running Horizon reads config at startup; changes while Horizon runs are ignored for agent worker configuration
  • php artisan horizon runs as foreground process — Horizon requires Supervisor (or systemd) to keep it running; raw php artisan horizon exits on server disconnect; configure Supervisor program: command=php artisan horizon, autostart=true, autorestart=true for agent production deployments
  • Balance strategy affects CPU usage — balance: 'auto' continuously monitors queue depth and adjusts workers; frequent worker creation/destruction for bursty agent queues causes overhead; balance: 'simple' with fixed workers is more predictable for steady agent load patterns
  • Failed jobs stored in Redis, not database — unlike queue:failed (database), Horizon failed jobs stored in Redis with TTL; failed agent jobs expire after 7 days by default; critical agent job failures may be lost if not investigated within retention window; configure failed_job_timeout in horizon.php
  • Horizon Dashboard auth gate must handle unauthenticated users — Horizon::auth callback receives Request; if user is not logged in, Auth::user() returns null; gate returning null (falsy) denies access; explicitly return false for unauthenticated to prevent PHP notice and ensure clean 403 for agent platform security
  • maxJobs per worker prevents memory leaks — PHP processes accumulate memory over time; max_jobs: 500 in supervisor config restarts worker after 500 jobs; for agent jobs loading large documents or LLM responses, lower maxJobs (50-100) prevents memory exhaustion in long-running agent workers

Alternatives

Full Evaluation Report

Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for Laravel Horizon.

$99

Scores are editorial opinions as of 2026-03-06.

5220
Packages Evaluated
26151
Need Evaluation
173
Need Re-evaluation
Community Powered