• About
  • Success Stories
  • Careers
  • Insights
  • Let`s Talk

Laravel Horizon for Queue Visibility and Control

Your team gets a real-time view of job processing, failure diagnostics, and worker scaling without SSH access or manual artisan commands.
horizon logo
"Curotec are Laravel pros that have been a valued member of the Laravel community for years. As an official Laravel partner, I trust they have the expertise to carry projects over the finish line."
Taylor Otwell
Creator of Laravel
Man standing with crossed arms
👋 Talk to a Horizon expert.
LEAD - Request for Service

curotec-laravel-partner

Trusted and top rated tech team

"Curotec are Laravel pros that have been a valued member of the Laravel community for years. As an official Laravel partner, I trust they have the expertise to carry projects over the finish line."
Taylor Otwell
Creator of Laravel

Horizon for production queue visibility

Running queues with artisan commands gives your team no insight into job processing until something breaks. Horizon replaces that with a real-time dashboard, code-driven worker settings, and automatic process balancing. We set up Horizon for production workloads with proper supervisor groups, failure tracking, and scaling strategies.

Our capabilities include:

Who we support

Horizon fits any Laravel application running Redis queues in production. We work with teams that need visibility into background job processing, worker scaling, and failure recovery without relying on server access and log files.

SaaS Companies with Background Jobs

Your application dispatches jobs for email delivery, payment processing, or report generation. Horizon gives your operations team visibility into throughput, backlogs, and failure rates across all queue activity.

Teams Scaling Queue Infrastructure

Your queue workers need to scale with traffic patterns but right now that's manual guesswork. Horizon's auto-balancing allocates processes to busy queues and pulls them back when load drops. We configure supervisor groups, process limits, and cooldown intervals matched to your workload.

Engineering Teams Debugging Failed Jobs

Failed jobs disappear into log files without context. Horizon surfaces failures with full stack traces, job payloads, and retry controls your developers can act on without writing artisan commands or querying the database directly.

Ways to engage

We offer a wide range of engagement models to meet our clients’ needs. From hourly consultation to fully managed solutions, our engagement models are designed to be flexible and customizable.

Staff Augmentation

Get access to on-demand product and engineering team talent that gives your company the flexibility to scale up and down as business needs ebb and flow.

Retainer Services

Retainers are perfect for companies that have a fully built product in maintenance mode. We'll give you peace of mind by keeping your software running, secure, and up to date.

Project Engagement

Project-based contracts that can range from small-scale audit and strategy sessions to more intricate replatforming or build from scratch initiatives.

We'll spec out a custom engagement model for you

Invested in creating success and defining new standards

At Curotec, it is more than just the solutions we build. We value relationships between our people and our clients — that partnership is why CEOs, CTOs, and CMOs turn to Curotec.
Pairin
Helping a Series B SaaS company refine and scale their product efficiently

Why choose Curotec for Horizon implementation?

We configure Horizon beyond default installations, tuning balancing strategies to your traffic patterns and building supervisor groups for queue priority separation. Our Laravel developers integrate Horizon with your deployment pipeline, implement job tagging for failure debugging, and set alert thresholds that notify your team before backlogs affect users.

1

Extraordinary people, exceptional outcomes

Our outstanding team represents our greatest asset. With business acumen, we translate objectives into solutions. Intellectual agility drives efficient software development problem-solving. Superior communication ensures seamless teamwork integration. 

2

Deep technical expertise

We don’t claim to be experts in every framework and language. Instead, we focus on the tech ecosystems in which we excel, selecting engagements that align with our competencies for optimal results. Moreover, we offer pre-developed components and scaffolding to save you time and money.

3

Balancing innovation with practicality

We stay ahead of industry trends and innovations, avoiding the hype of every new technology fad. Focusing on innovations with real commercial potential, we guide you through the ever-changing tech landscape, helping you embrace proven technologies and cutting-edge advancements.

4

Flexibility in our approach

We offer a range of flexible working arrangements to meet your specific needs. Whether you prefer our end-to-end project delivery, embedding our experts within your teams, or consulting and retainer options, we have a solution designed to suit you.

Horizon's capabilities across queue operations

Auto-Scaling Worker Processes

Your queue workers scale up during traffic spikes and scale back during quiet periods without manual intervention or server restarts.

Real-Time Queue Dashboard

Monitor pending jobs, active workers, throughput rates, and runtime metrics from a web dashboard accessible at your application's /horizon route.

Failed Job Investigation & Retry

Inspect failed job stack traces and payloads, then retry or delete them from the dashboard without running artisan commands.

Job Tagging & Filtering

Search and filter background jobs by Eloquent model, custom tags, or job class to find specific tasks across thousands of entries.

Code-Driven Queue Configuration

Define all worker processes, queue priorities, and balancing rules in a single config file that deploys through version control.

Queue Wait Time Alerts

Configure Slack, email, or SMS alerts when queue wait times cross your defined thresholds before job backlogs reach your users.

How we configure Horizon for production

Horizon Installation & Configuration

We install Horizon and set up environment-specific supervisors, worker processes, and Redis connections for production.

  • Environment Configuration – Define separate worker settings for local, staging, and production with environment-specific process counts, timeouts, and balancing rules.
  • Supervisor Groups – Configure named supervisor groups that manage independent worker pools, each with its own queue assignments, process limits, and balancing strategy.
  • Redis Connection Setup – Set up Horizon’s dedicated Redis connection separate from your cache and session stores, preventing queue operations from competing for resources.
  • Dashboard Authorization – Implement gate-based access control restricting the /horizon route to authorized users in production using Laravel’s authorization policies.
  • Maintenance Mode Handling – Allow supervisors to continue processing critical queues during maintenance mode using the force option for jobs that cannot wait.
  • Silenced Jobs – Exclude high-frequency, low-priority jobs from the completed jobs list to keep the monitoring view focused on meaningful queue activity.

Worker Balancing Strategies

Three balancing strategies control how Horizon distributes worker processes across your queues under varying load conditions.

  • Auto Balancing – Horizon scales worker processes up or down per queue based on current workload, using time-based or size-based scaling strategies to match demand.
  • Simple Balancing – Distribute a fixed number of worker processes evenly across queues when predictable, steady workloads don’t require dynamic scaling.
  • Priority Queue Configuration – Assign dedicated supervisors to high-priority queues with guaranteed process allocation while other queues share remaining capacity.
  • Min/Max Process Bounds – Set floor and ceiling values for worker processes per supervisor, preventing under-provisioning during spikes and over-provisioning during quiet periods.
  • Balance Cooldown Tuning – Configure how quickly Horizon adds or removes workers with balanceMaxShift and balanceCooldown settings matched to your job duration patterns.
  • Multi-Supervisor Architecture – Run multiple supervisors with different balancing strategies, separating fast notification jobs from slow report generation on independent pools.

Job Monitoring & Failure Management

Curotec implements Horizon’s failed job tracking with stack traces, payload inspection, and retry workflows from the interface.

  • Failed Job Tracking – Review failed jobs with full exception stack traces, job class names, payloads, and timestamps to diagnose failures without searching log files.
  • Retry & Delete Controls – Retry individual failed jobs or delete them from the interface, with bulk operations available for clearing resolved failure batches.
  • Max Attempts Settings – Set job retry limits at the supervisor level or per job class, with support for unlimited attempts paired with max exception thresholds.
  • Timeout Management – Define job timeout values per supervisor to terminate long-running processes before they consume worker slots and block other queued tasks.
  • Exponential Backoff – Implement progressive retry delays using array-based backoff settings so failing jobs wait longer between each attempt instead of retrying immediately.
  • Job Exceptions vs. Attempts – Separate exception counts from attempt counts, allowing jobs using rate limiting or overlap prevention middleware to retry without exhausting limits.

Job Tagging & Search

Tags attach metadata to queued jobs, making it possible to filter and locate specific tasks across your application’s queue history.

  • Automatic Eloquent Tagging – Horizon detects Eloquent models in job constructors and tags jobs with model class names and IDs automatically, requiring no additional code.
  • Custom Tag Methods – Define a tags() method on job classes returning arrays of custom identifiers for filtering jobs by business context like order IDs or user groups.
  • Event Listener Tags – Tag queued event listeners with event-specific data, passing the event instance to the tags method for contextual filtering in the interface.
  • Tag-Based Search – Filter jobs by tags to locate all entries related to a specific user, order, or entity across completed and failed job lists.
  • Silenced Tags – Suppress jobs with specific tags from the completed jobs view, keeping high-volume background tasks from crowding out important job visibility.
  • Mailable & Notification Tags – Track queued mail and notifications with automatic tagging, connecting delivery jobs back to the models and users that triggered them.

Metrics & Alerting

Our engineers schedule Horizon’s metrics snapshots and wire alert routing for proactive queue health monitoring across environments.

  • Metrics Snapshot Scheduling – Schedule the horizon:snapshot command to run at intervals, populating the metrics view with throughput and wait time trend data.
  • Wait Time Threshold Alerts – Define per-queue wait time thresholds that trigger notifications when jobs sit too long, catching bottlenecks before they affect users.
  • Slack Integration – Route queue health notifications to Slack channels using webhook URLs, keeping your operations team informed without manual monitoring.
  • Email & SMS Alerts – Configure mail and SMS notification routing for critical queue alerts, reaching on-call engineers when Slack notifications aren’t sufficient.
  • Throughput Monitoring – Track jobs processed per minute across queues and time periods, identifying performance trends and capacity data from the metrics interface.
  • Metrics Data Management – Clear historical metrics with horizon:clear-metrics when performance degrades or when resetting monitoring after infrastructure changes.

Deployment & Process Management

Production Horizon instances require process monitors that restart workers after deploys and recover from unexpected termination.

  • Supervisor Process Monitor – Set up Linux Supervisor to manage the Horizon master process with automatic restart, log rotation, and graceful shutdown on deployments.
  • Deployment Termination – Run horizon:terminate during deployments to gracefully finish active jobs before restarting workers with updated code through your CI/CD pipeline.
  • Laravel Forge Integration – Use Forge’s built-in Horizon management for automated process monitoring, deployment hooks, and worker restart without manual Supervisor setup.
  • Laravel Cloud Deployment – Deploy Horizon on Laravel Cloud with managed background process support, removing manual Supervisor and server-level setup.
  • Pause & Resume Controls – Pause specific supervisors or the entire Horizon instance during maintenance windows using artisan commands without killing active job processing.
  • Hot Reload for Development – Use horizon:listen with Chokidar file watching during local development, automatically restarting workers when code changes without manual restarts.

FAQs about our Laravel Horizon implementation

Horizon installs alongside your existing queue setup without stopping job processing. We configure it in staging first, validate supervisor settings and balancing against your actual workload patterns, then deploy to production. Your queues keep running throughout the process.

We audit your current worker setup, map existing CLI settings into Horizon’s config file, and replicate your queue behavior before making changes. Nothing shifts until your team confirms the Horizon setup matches what’s already running.

For most applications, initial setup through production deployment takes one to two weeks. Complex environments with multiple supervisor groups, custom tagging strategies, or multi-tenant queue isolation may take longer. We scope it after reviewing your current queue architecture.

Yes. Horizon’s settings live in a single PHP file your Laravel developers already understand. We document supervisor groups, balancing choices, and alert thresholds so your team can adjust them as workload patterns change without re-engaging us.

Access to your Laravel application repo, your current queue driver setup, and a conversation about which jobs matter most. We’ll review your queue architecture, identify priority and failure patterns, and propose a Horizon configuration before writing anything.

Yes. Queue workloads change as your application grows. We offer retainer support for tuning balancing strategies, adjusting supervisor groups, and responding to queue performance issues as your traffic patterns evolve.

Ready to have a conversation?

We’re here to discuss how we can partner, sharing our knowledge and experience for your product development needs. Get started driving your business forward.

Scroll to Top
LEAD - Popup Form