- What is maherelgamil/periscope used for in Laravel?
- Periscope is a Laravel package for monitoring and managing queues across multiple backends. It is described as a driver-agnostic alternative to Horizon, with support for Redis, database, SQS, and Beanstalkd. It also provides a lightweight dashboard for observing runtime events and application activity. Treat the evidence as provisional because the assessment is based on a single v0.5.3 release note.
- Does Periscope support Redis, database, SQS, and Beanstalkd queues?
- Yes. The package description explicitly lists Redis, database, SQS, and Beanstalkd as supported queue drivers. That driver-agnostic design is the main differentiator from Horizon, which is Redis-focused. Verify your specific driver and Laravel version against composer.json and the README before committing, because the available evidence does not include a full support matrix.
- How do I install maherelgamil/periscope in a Laravel app?
- Install it with Composer, for example composer require maherelgamil/periscope, and pin an exact pre-1.0 version such as 0.5.3. The evidence does not include the full install or configuration steps, so review the README and composer.json before running it. Try it in a non-production environment first and confirm ext-pcntl is available if you plan to run periscope:start.
- Is Periscope a good alternative to Laravel Horizon?
- It can be an alternative when you need queue visibility across non-Redis drivers such as database, SQS, or Beanstalkd. Horizon is deeply tied to Redis, while Periscope is positioned as driver-agnostic. Feature parity is not confirmed by the available evidence, so compare the dashboard, management actions, and failure handling you actually need. Pin the package version and test it as an operational sidecar rather than a request-path dependency.
- Which Laravel and PHP versions are supported by Periscope?
- The provided evidence does not confirm a supported PHP or Laravel version matrix. The release note only covers v0.5.3 and does not include composer.json, the README, or a test suite. Check the package's composer.json constraints and README before installing, and verify the PHP runtime matches your container image.
- Why does periscope:start require ext-pcntl and a POSIX host?
- Periscope ships an Artisan command, periscope:start, that runs a long-lived master process with a sleep cycle and POSIX signal handling. That design requires ext-pcntl and a POSIX host, so Windows is not supported for that command. Confirm pcntl is compiled and enabled in your PHP image, because slimmed Alpine builds and custom --disable-pcntl compiles may lack it. Without a declared requirement or graceful fallback, installation can succeed but runtime can fail.
- Can I run Periscope on Windows or Laravel Vapor?
- The periscope:start master process is POSIX-only and long-lived, so it is incompatible with Windows development hosts if developers need to run it locally. It is also a poor fit for serverless platforms such as Laravel Vapor, where no long-lived process is permitted. Use it on Linux containers or VMs with a process supervisor instead.
- How should I supervise periscope:start in production?
- Run periscope:start under systemd, supervisord, or Kubernetes with a restart policy, and treat it as an optional operational sidecar. Ensure ext-pcntl is enabled in the container base image, and verify that the master forwards SIGTERM to child processes with a defined shutdown timeout. Check for signal-handler collisions with Horizon, queue workers, or Octane, and pin the package to an exact version.
- Is Periscope v0.5.3 stable enough for production?
- v0.5.x is pre-1.0, so the public API should be treated as unstable. Pin an exact version such as 0.5.3, test in a non-production environment first, and avoid adopting it where a pre-1.0 dependency is unacceptable. The available assessment is provisional because it is based on one release note, not a full repository review.
- How does Periscope handle SIGINT/SIGTERM and worker shutdown?
- In v0.5.3, Periscope installs a POSIX signal handler so Ctrl+C takes effect immediately instead of waiting for the usleep interval. That is a semantic change to shutdown, so verify teardown logic that may have relied on the sleep window, such as draining in-flight work or flushing buffers. Also check how the master interacts with child processes and other handlers, because handler collisions are a known risk.