Skip to content

Vendor-neutral, engineer-written explanations. Clear definitions first, then practical steps with real examples — no fluff.

What is Laravel Horizon?

SB
Written by StageBit Engineering Team
Updated February 2026 2 min readVerified by engineers

Laravel Horizon is a first-party, open-source queue monitoring package provided by the Laravel framework. It offers a clean, real-time dashboard and a fully code-driven configuration system for managing Redis-powered queues.

In Laravel, Horizon is the preferred solution for monitoring, balancing, and scaling background jobs, providing far more visibility and control than running standard queue workers manually.

Core Functions of Laravel Horizon

While standard Laravel queue workers operate as a black box, Horizon introduces transparency and intelligent queue management.

  • Real-Time Dashboard: Horizon provides a single-page dashboard that displays pending, running, completed, and failed jobs in real time.
  • Code-Driven Configuration: Worker processes, queue priorities, memory limits, and balancing behavior are fully defined in config/horizon.php, keeping all queue logic under source control.
  • Automatic Load Balancing: Horizon can dynamically reassign workers to queues with higher workloads, improving throughput without manual tuning.

Key Features of Horizon

  • Job Tagging: Jobs are automatically tagged using related Eloquent models, allowing easy filtering (for example, viewing all jobs related to User:1).
  • Metrics & Analytics: Horizon tracks job throughput, average runtime, queue wait times, and failures, helping teams identify performance bottlenecks.
  • Notifications: Configurable alerts can be sent when queues grow too large or job wait times exceed defined thresholds.
  • Failed Job Management: Failed jobs can be inspected with full stack traces and retried directly from the dashboard.

Installation and Basic Setup

Installing Horizon in a Laravel application is straightforward:

composer require laravel/horizon
php artisan horizon:install

To start Horizon in a local development environment:

php artisan horizon

Queue Balancing Strategies

Horizon provides multiple worker balancing strategies, configured per environment:

  • simple: Distributes workers evenly across all configured queues.
  • auto: Dynamically shifts workers to queues with the highest workload (recommended for most production systems).
  • false: Disables balancing and processes queues strictly in the listed order.

Production Deployment & Compatibility

In production environments, Horizon should be managed using a process monitor such as Supervisor (commonly via Laravel Forge or Laravel Cloud). This ensures the php artisan horizon process is automatically restarted if it exits unexpectedly.

Important: Laravel Horizon works exclusively with Redis queues. It does not support other queue drivers such as database or Beanstalkd. Furthermore, Horizon is not compatible with Redis Cluster; it requires a standalone Redis instance or a primary/replica configuration.

Security and Dashboard Access

By default, the Horizon dashboard is only accessible in the local environment. In non-local environments, access is restricted for security reasons.

To allow production access, you must explicitly define an authorization gate in the HorizonServiceProvider, typically restricting access to specific users, roles, or IP addresses.

Was this answer helpful?

Your feedback helps us improve our answers.

Still need help?

Talk to our Laravel experts

We've handled GDPR/CCPA compliance for dozens of EU & US Laravel.

Talk to Laravel Experts

Tell us more about your brand!

Rohit Kundale, Our VP of Sales and Marketing is ready to meet with your team.