Dynamic Workflow Orchestrator
A full-stack approval system that eliminates the chaos of manual, untracked approval processes. Built with Vue 3 and Laravel 11 for configurable sequential and parallel pipelines, real-time updates via WebSockets, and role-based access control — ensuring every request flows through the right people in the right order.
// images_preview
// tech_stack
Vue 3
Laravel 11
TypeScript
Tailwind CSS
Pinia
MySQL
// challenges_&_learnings
01
Parallel & sequential pipelines
Designed a workflow engine where steps with the same execution_group run in parallel, while different groups run sequentially — giving admins full control over complex approval flows.
02
Real-time updates with WebSockets
Integrated Laravel Reverb for live UI updates when approvals are made — no polling, no page refresh, instant feedback across all connected clients.
03
Race condition prevention
Used SELECT FOR UPDATE row locking in AdvanceWorkflowJob to prevent duplicate workflow advancement during concurrent approvals hitting the same step simultaneously.
04
Role-based access control
Implemented dynamic RBAC with Spatie Laravel Permission — roles are assigned at runtime, and approver lists are snapshotted at request creation to ensure auditability even if roles change later.