Skyline

Getting started

Introduction

What Skyline adds on top of Laravel Horizon, and what stays exactly the same.

Laravel Skyline is a commercial fork of Laravel Horizon, maintained by Boring Observability. It keeps everything Horizon does for monitoring Redis queues and adds the operations layer Horizon leaves out: pausing a queue, running a delayed job now, weighted processing, front-of-queue dispatch, per-queue inspection and cleanup, and a metrics dashboard that stays readable at scale.

A genuine drop-in replacement

Skyline keeps the Laravel\Horizon\ namespace and declares replace on laravel/horizon in Composer. In practice that means:

  • Your existing config/horizon.php keeps working, unchanged.
  • Your HorizonServiceProvider, Gate::define('viewHorizon', …) and Horizon::auth() customisations keep working.
  • Every php artisan horizon:* command keeps its name and behaviour.
  • The dashboard still mounts at /horizon.
  • Any package that depends on laravel/horizon resolves against Skyline instead.
  • There are no migrations, and no application code changes.

Skyline is a rebased fork rather than a divergent one: main is always a recent upstream Horizon tag with the Skyline commits replayed on top. New Horizon releases, bug fixes and Laravel compatibility updates are merged in, so the Skyline features are built on a current base rather than instead of one.

What Skyline adds

Capability Where it is documented
Proportional queue priority that never starves a queue Weighted queues
Push an urgent job to the head of the queue Front-of-queue dispatching
Pause and resume a single queue from the dashboard Pausing & resuming queues
Job-state tabs, per-queue drill-down, search, delete, empty queue, Perform Now Dashboard operations
Aggregate metric charts, workload / failure / wait trends Metrics & trends
Structured logging of every job lifecycle transition Job lifecycle logging
One-object-per-line JSON worker output JSON worker output
Unique-job locks released when a job leaves the queue out-of-band Unique job locks
New HTTP endpoints backing all of the above HTTP API

Requirements

Skyline inherits Horizon's requirements: a PHP application running Laravel, with a Redis queue connection and either the phpredis extension or predis/predis. Skyline monitors Redis queues, exactly as Horizon does.

Two features degrade gracefully on older Laravel versions rather than breaking: per-queue pausing needs the framework's native queue-pause API and hides itself when it is unavailable, and JSON worker output requires Laravel 11 or later.

Licensing

Skyline is sold as an annual subscription through Anystack. A license key authenticates Composer against the private registry at laravel-skyline.composer.sh so you can install and update the package. See Installation.

If a subscription lapses, already-installed versions keep running normally. There is no runtime license check that can interrupt job processing — only future composer update calls against the private registry fail authentication until you renew.

Skyline is built on Laravel Horizon, which is open-sourced under the MIT license (Copyright © Taylor Otwell). Skyline's modifications and additions are Copyright © Boring Observability and are also released under MIT.

Relationship to the Horizon docs

Skyline's behaviour is identical to upstream Laravel Horizon except for the features documented on this site. The official Horizon documentation — supervisors, balancing strategies, autoscaling, tags, metrics snapshots, notifications, deployment — applies in full.

Queue control, not just queue monitoring.

Skyline is a drop-in replacement for Laravel Horizon that lets you act on what you see — pause a queue, jump a job to the front, drain a backlog.

Sign up for early access