solution-forest/workflow-engine-laravel
Strengths:
#[WorkflowStep], #[Retry], #[Timeout]), enums, and type safety, aligning with Laravel’s evolving ecosystem (e.g., Symfony 7+ compatibility).['step1' => ['handler' => MyHandler::class]]) simplify complex processes while keeping them configurable.Fit for:
WorkflowStarted, StepCompleted) for reactivity.Weaknesses:
Laravel Compatibility:
php artisan workflow:generate).WorkflowStep::dispatch()), but lacks built-in retry/dead-letter patterns.WorkflowEngineInterface) enable unit/integration testing with Pest/PHPUnit.External Dependencies:
Auth::user() in step handlers) but lacks RBAC for workflows.Workbench or Dockerized environments to validate edge cases.if-else logic)?if ($order->status === 'pending')) with workflow steps.Workflow::createFromLegacyData()).workflow:generate scaffolds boilerplate (e.g., controllers, migrations).config/app.php.WorkflowTestCase).php artisan migrate).config/app.php.config/workflows.php or via attributes.class SendEmailStep implements WorkflowStep).WorkflowMiddleware::class).queue:work in staging.workflow:list).tap method).workflow_runs.id) may be needed for high concurrency.queue:work --sleep=3 --tries=3) can handle load spikes.workflow_runs.tenant_id).SETNX).| Failure Type | Impact | Mitigation |
|---|---|---|
| Database Lock Contention | Workflow steps block indefinitely. | Use short transactions; retry logic. |
| Queue Worker Crash | Steps time out or are lost. | Supervisor + dead-letter queue. |
| Attribute Syntax Error | Workflow breaks at runtime. | Lint with phpstan; feature flags. |
| Concurrent Modifications | Race conditions in step execution. | Optimistic locking (e.g., version). |
| Package Abandonment | No updates for critical bugs. | Fork or build custom engine. |
How can I help you explore Laravel packages today?