glhd/conveyor-belt
Conveyor Belt is a Laravel package for composing queued jobs into pipelines. Define ordered stages, run independent jobs in parallel, and orchestrate multi-step background workflows while relying on Laravel’s queue for retries and scaling.
Architecture fit: glhd/conveyor-belt is a Laravel/PHP orchestration package for running Artisan commands concurrently with progress reporting. It fits best as a developer/ops utility layer for batch jobs, deployment scripts, data backfills, test setup, and maintenance commands where multiple independent Artisan commands can run in parallel. It is not a general-purpose queue, scheduler, or distributed job runner.
Integration feasibility: The 2.4.0 change is additive: commands implementing Countable can expose a total for progress bars. This is a low-friction enhancement for teams already using the package. New adopters can install via Composer and wrap existing Artisan commands without application architecture changes, provided commands are safe to run concurrently.
Technical risk: Low for the release itself: no breaking changes are indicated. The broader package risk is inherent concurrency risk: shared database writes, cache locks, file writes, external API rate limits, and interleaved output can cause confusing failures. Progress-bar totals depend on accurate Countable::count() implementations; inaccurate counts degrade UX but should not affect command exit codes.
Key questions:
Countable apply to the command class, the command output, or both? Is the contract documented?Stack fit: Suitable for Laravel teams that already orchestrate Artisan commands in shell scripts or sequential PHP loops and want parallel execution with better progress visibility. The 2.4.0 Countable support improves operator experience for long-running commands but does not change the integration model.
Migration path: No migration is required for existing users. Adopt 2.4.0 as a normal minor upgrade. For commands where total work is known, implement Countable and return a deterministic count. For unknown-size work, retain indeterminate progress behavior. If not already using the package, pilot it in non-critical scripts before using it in production deployment or data-migration paths.
Compatibility: Validate against the project’s Laravel/PHP matrix. Because the feature relies on PHP’s Countable interface and console progress rendering, test in both interactive terminals and CI/non-interactive environments. Confirm that commands selected for parallel execution are idempotent or partitioned to avoid write conflicts.
Sequencing:
Countable to one or two high-value batch commands with known totals.Maintenance: Low. The release is small and non-breaking. Ongoing maintenance is mainly Composer dependency hygiene and periodic compatibility checks with Laravel/Symfony releases. Community contribution activity is a positive signal but also means behavior should be covered by local smoke tests.
Support: Support burden is modest for Laravel teams familiar with Artisan. The main support questions will be concurrency-related: shared resources, lock contention, rate limits, and interpreting interleaved output. The Countable feature is self-contained and unlikely to generate significant support load.
Scaling: Scales with local process capacity, not horizontally. Effective parallelism is bounded by CPU, memory, database connections, external API limits, and disk I/O. Progress-bar totals improve observability but do not improve throughput. For large distributed workloads, this package should not replace a queue or scheduler.
Failure modes: Command failures, timeouts, killed child processes, shared-resource contention, inaccurate Countable totals, and poor output attribution in parallel runs. The 2.4.0 feature may expose misleading progress if counts are expensive to compute or drift during execution. Ensure failures propagate with non-zero exit codes and that logs remain diagnosable.
Ramp-up: Low for Laravel developers. Teams need a short onboarding on which commands are concurrency-safe, how to implement Countable meaningfully, and how to read parallel output. TPM recommendation: adopt 2.4.0 if already using the package; treat Countable support as a UX improvement, not a reason alone to introduce the package. Evaluate the package primarily on orchestration fit and concurrency safety.
How can I help you explore Laravel packages today?