lazyants/workflow-bundle
A PHP workflow bundle for defining and running state machines and multi-step business processes. Configure transitions, guard conditions, and listeners, then track each item's progress through the workflow. Integrates with existing framework services for events, persistence, and dependency injection...
Package status: v0.3, pre-1.0 (0.x). No prior assessment exists in the record, and no repository metadata, source, or usage inventory was supplied — this evaluation is derived solely from the release note task config removed. Treat all statements below as conditional and to be validated in the discovery step.
Architecture fit: Unverified. What is knowable is that the package previously exposed a task configuration surface — most plausibly an array/config-driven definition of tasks (queued jobs, scheduled commands, pipelines, or a task-runner abstraction) published via a Laravel service provider's mergeConfigFrom/publishes calls. Removal of that surface implies the package now resolves task definitions by another mechanism (auto-discovery, attributes, code-level registration, or a convention-over-configuration scan). Architecturally this moves the package from declarative/config-driven to code-driven, which is a better fit for typed, refactor-safe Laravel codebases but a worse fit for teams that expect to tune behaviour per environment without a deploy. Fit against our own architecture cannot be judged until we know which of those two worlds our applications sit in.
Integration feasibility: Feasible but gated. At 0.x, the package is almost certainly unversioned in behaviour if not in semver; removing a config key in a minor release is legitimate under 0.x conventions but is a breaking change in effect. Integration effort is therefore not the concern — the concern is that any existing consumer with a published config/tasks.php (or equivalent) will silently retain a stale file that is no longer read. Silent failure, not a crash. That is the single highest-value finding in this release.
Technical risk:
illuminate/support and illuminate/console; confirm the constraints and the supported Laravel/PHP matrix before adoption.Key questions (must be answered before any adoption decision):
Stack fit: Presumed Laravel-native (service provider + config publish + likely an artisan command surface), which is the right shape for our stack. The shift from config-driven to code-driven task definition is in our favour if our task definitions are already in PHP — it gives us IDE support, static analysis, and reviewable diffs. It is against us if we rely on environment-specific task wiring (e.g. different queues per environment configured in config/tasks.php), because that now has to be expressed in code or in a separate env-aware layer.
Migration path: Do not migrate in place. Sequence:
Compatibility: Because this is a pre-1.0 breaking change, pin the package to an exact version (0.3.x or better, a commit SHA) rather than a caret range. Any team that was on ^0.2 and floats will be broken by a composer update that is unrelated to their own work — this is the most likely real-world incident from this release.
Sequencing: Freeze the dependency at the currently deployed version for all existing consumers first. Then treat v0.3 adoption as a deliberate, per-application upgrade, not a fleet-wide bump. Do not begin new work against v0.3 until question 1 and question 2 above are answered.
Maintenance: Removal of a config surface is a net maintenance reduction for the package maintainer — less surface to document, validate, and support — and a one-time maintenance cost to us. Net positive over twelve months, provided the migration is done deliberately rather than absorbed accidentally. Note the pattern: the package shed a public interface without a deprecation cycle. Price that behaviour into how much we depend on it.
Support: Support burden shifts from "how do I configure X" to "why did my tasks stop running." Expect a short spike in support tickets at the moment any team runs an unpinned composer update. Publish an internal note to consuming teams before the release propagates through any shared base image or starter template.
Scaling: Neutral. Task definition mechanism does not materially affect throughput, queue behaviour, or horizontal scaling. The only scaling-adjacent consideration is that code-driven registration is easier to reason about at large task counts and across many teams than a single shared config array — mildly positive.
Failure modes:
Ramp-up: Low for engineers already fluent in Laravel service providers and config publishing — the concepts are familiar, and reading the package source is a few hours. The real ramp-up cost is discovery, not learning: locating consumers, reading the new source, and validating parity. Budget roughly one engineer-day per consuming application for the first migration, materially less for subsequent ones once the reference migration exists.
Recommendation: Do not adopt v0.3 broadly on the strength of this release note alone. Pin existing consumers to their current version immediately, answer the five key questions, run one reference migration, then proceed application by application. Re-assess when the package reaches 1.0 or publishes a documented migration guide.
How can I help you explore Laravel packages today?