Repository navigation
Releases
v1.1.2
What's Changed
- Let a subclassed model declare its own factory by @JustSteveKing in #9
Full Changelog: v1.1.1...v1.1.2
v1.1.1
What's Changed
- Let a step compute its timeout from the instance's context by @JustSteveKing in #7
- Signal targeting, cancellation, recovery, and unsealing the host boundary by @JustSteveKing in #8
Full Changelog: v1.1.0...v1.1.1
v1.1.0
What's Changed
- Let a step route its timeout instead of failing by @JustSteveKing in #6
Full Changelog: v1.0.0...v1.1.0
v1.0.0
What's Changed
- Prepare v1.0.0 by @JustSteveKing in #4
New Contributors
- @JustSteveKing made their first contribution in #4
Full Changelog: v0.2.0...v1.0.0
v0.2.0
Component-level dependencies.
The package now depends on the individual illuminate/* components (bus, console, contracts, database, queue, support) instead of the whole laravel/framework.
Internally, jobs dispatch through Illuminate\Contracts\Bus\Dispatcher and configuration is read through Illuminate\Contracts\Config\Repository, removing all Illuminate\Foundation\* usage. No behavioural change — same public API, same 96-test suite.
Requires PHP 8.5 and Laravel 13.
composer require juststeveking/workflow-enginev0.1.0
The first release of the workflow engine. Model long-running, multi-step Laravel processes as an ordered list of steps that complete, await a named signal, sleep, branch via goto, or fail. Instances are persisted as rows, driven forward by queued jobs, and resumed by signals from the outside world.
Install
composer require juststeveking/workflow-engineRequires PHP 8.5 and Laravel 13.
What's included
- Step outcomes:
complete,await,goto(branching),sleep(delays),fail - Per-step timeouts tagged to the guarded step, and bounded retries with configurable exponential backoff (
HasRetryBackoff) - Saga compensation via
CompensatingStep(run outside the lock, with aStepCompensationFailedevent), early-signal buffering, and definition versioning - Status lifecycle enforced through
juststeveking/state-machine— illegal transitions throw - Domain events for every transition
- Row locking and after-commit dispatch for at-least-once queue safety
- Swappable persistence behind
WorkflowRepositoryContract - Nine artisan commands:
list,show,instances,start,signal,advance,retry,tick,prune - Full Unit + Feature suite, PHPStan level 10, Pint, CI, and four worked examples