yokai/batch
Yokai Batch is a Laravel package for running and managing batch jobs, with tools to define batches, track progress, and handle failures in queued workloads. It integrates with Laravel's queue and provides a simple API for orchestrating long-running or bulk tasks.
Bus::batch, queued jobs, Horizon) and ordered, chunked, resumable, aggregate processing (nightly imports, invoicing runs, catalog syncs, report generation). Use it to decide which of your roadmap items are genuinely "batch" problems and which are being over-engineered.Consider it when all of the following hold:
Look elsewhere when:
Bus::batch, chunked queue jobs, Horizon, and LazyCollection-based streaming. Add a dedicated package only for the specific gap you can name.To executives: The need is real — batch data pipelines (imports, billing runs, syncs) are a recurring roadmap request and a common source of production incidents when teams hack them out of queued jobs. This package is not the recommendation. It has 12 stars, zero known dependents, no release since late 2023, and effectively a single-maintainer risk profile, and it targets Symfony rather than our Laravel stack. Recommendation: fund a design spike, not an integration. Use the package as a reference architecture, build on Laravel's native batching plus streaming reads, and revisit an external orchestrator if volumes grow. That gets us the capability in roughly the same timeframe with no orphaned dependency on the critical path.
To engineering: It's a clean, small implementation of the job/step/chunk pattern with skip and retry semantics — worth reading before we design ours, and worth copying the interfaces and lifecycle from. What we should not copy is the dependency: no dependents means no production validation, the last release predates recent PHP/Symfony minors, and there's no clear upgrade path. Concretely: pin it only inside a throwaway spike branch; if we do adopt, we vendor it and assign an owner with a documented fork policy.
How can I help you explore Laravel packages today?