wesnick/api-platform-workflow-extension
Integrates Symfony Workflow with API Platform by exposing workflow transitions as REST operations, letting clients move resources through workflow states via configurable endpoints with guard and access-control support.
Architecture fit. The first thing to flag is a stack mismatch in the brief: this is a Symfony bundle, not a Laravel package. api-platform/core and symfony/workflow are both first-party Symfony components, and the bundle exists solely to bridge them — it has no Laravel equivalent path. If our reference stack is Laravel, architectural fit is effectively zero at the code level and the package is valuable only as a design reference. If we run Symfony services, fit is materially better: API Platform has no native state-machine concept, so mapping workflow transitions onto API resource operations and guarding them by marking state is a real, recurring gap. That said, the bundle is thin glue — nearly all behavior lives in the two upstream components, both of which are maintained independently.
Integration feasibility. Low to moderate. The repository is archived, sits at 11 stars, and offers no evident support matrix. Before any spike we would need to read composer.json directly to establish pinned constraints on PHP, symfony/workflow, and api-platform/core. The integration surface is precisely the area that churns most between API Platform majors (operation definitions, metadata factories), so feasibility is version-conditional rather than categorical.
Technical risk: high.
Key questions.
api-platform/core, symfony/workflow, and PHP does it constrain, and are those still receiving security support?Stack fit. If Laravel: do not integrate. Use spatie/laravel-model-states or a small hand-rolled transition service, expose transitions as explicit endpoints rather than generic PATCHes, and enforce legality through policies. If Symfony: skip the bundle and build directly on symfony/workflow — first-party, maintained, and already in our dependency tree in most cases — adding roughly 150–300 lines of operation decorators and voters. That captures the large majority of this package's value with none of the archival exposure.
Migration path. (1) Spike in a scratch application, not the main repo. (2) Model one realistic workflow end to end (draft → review → published) to confirm the bridge actually saves effort. (3) Decide explicitly between fork-and-vendor and clean reimplementation, and record the decision. (4) If forking, vendor under our namespace with a named owner and a written upgrade runbook.
Compatibility. Verify against our exact PHP runtime, Symfony LTS line, and API Platform major. The defensible default is to assume incompatibility with anything released after the archive date until demonstrated otherwise in the spike.
Sequencing. Design the state model and authorization rules first — those are the expensive, durable decisions and they are framework-agnostic. Implementation is the cheap part and should follow. Do not let a package's shape drive the domain model; that inversion is the most common way this class of dependency becomes expensive.
Maintenance. We own it outright. Archived means zero upstream responsiveness. Either fund an internal fork with an owner, test coverage, and a fork policy, or treat the repo as read-only reference material and build natively.
Support. No community, no issue triage, no CVE channel. Every defect, however small, becomes an internal ticket competing with product work.
Scaling. Runtime cost is negligible — this is metadata and decorator glue, not a hot path. The scaling concern is organizational: each API Platform upgrade becomes a manual audit of a dependency nobody else is exercising.
Failure modes. Silent 500s from metadata incompatibility after a framework bump; transitions exposed without corresponding voter or policy checks, which is a privilege-escalation path on state changes; marking-store drift if workflow state is persisted through an unexpected backend; breakage on minor version upgrades with no upstream fix available.
Ramp-up. Individual learning curve is low for anyone fluent in Symfony Workflow and API Platform — a day or two. Organizational cost is the real number: roughly one sprint to evaluate and fork, then an ongoing 5–10% of one engineer absorbed by upgrade churn and orphan maintenance.
Recommendation. Do not adopt as a runtime dependency. Harvest the pattern and implement it natively on the maintained Workflow component (Symfony) or an equivalent (Laravel). Revisit only if the repository is un-archived and acquires an active maintainer.
How can I help you explore Laravel packages today?