hirethunk/verbs-commands
Command support for the Verbs event sourcing package for Laravel. Dispatch and handle commands alongside your aggregates and projections, keeping write-side intent explicit and your event-sourced domain organized and testable.
Architecture fit. hirethunk/verbs-commands is a satellite of the Verbs event-sourcing framework for Laravel, not a standalone capability. Its architectural value is entirely contingent on an existing commitment to Verbs (aggregates, projections, reactors, event store). For a TPM, the decision is therefore not "should we adopt this package" but "are we already, or about to be, a Verbs shop?" If the answer is no, this package has no independent integration story and should be excluded from the evaluation shortlist. If the answer is yes, it is a thin, low-ceremony extension that likely reduces boilerplate around command definition and dispatch — a convenience layer rather than a platform.
Integration feasibility. Composer-native, MIT-licensed, and structurally trivial to pull in (composer require hirethunk/verbs-commands). The real feasibility gates are version alignment (Laravel and PHP constraints versus our target runtime) and whether the functionality is still distinct from Verbs core or has since been folded upstream. Neither can be assumed from metadata alone; both require a one-day spike against our pinned Laravel/PHP matrix.
Technical risk. The metadata is the story: 1 star, 0 dependents, a single release in June 2024, and a composite score of 0.105. That is effectively zero external validation. Concretely:
Key questions for the maintainer/evaluator.
Stack fit. Clean fit for Laravel/PHP services already comfortable with Composer and service-provider conventions. It introduces no new runtime, datastore, or infrastructure dependency beyond what Verbs already requires. That is a genuine positive: low architectural surface area.
Migration path. Treat this as a phase-two adoption, never a phase-one one:
Compatibility. Pin the package version explicitly and add it to the dependency-review checklist. Validate against our Laravel major and PHP minor before merge. Do not allow it to float on a caret constraint given the release cadence — a ^ range on an unmaintained package is an unowned failure waiting to happen.
Sequencing. Gate the decision on the Verbs core decision. If Verbs is rejected, close this ticket immediately — do not spend evaluation cycles on a satellite of a framework we are not adopting. If Verbs is accepted, budget a one-day spike and a fork-or-vendor decision checkpoint before any production code depends on it.
Maintenance. Assume we own it. With one star and zero dependents, upstream maintenance is a courtesy, not a guarantee. The realistic operating model is a pinned version plus an internal fork on standby. Budget a small but recurring line item — a few hours per Laravel major upgrade — for compat verification or patching.
Support. There is no meaningful external support channel: no community, no documented issue-response cadence, no Stack Overflow corpus. All support is internal. That is acceptable for a thin convenience package and unacceptable for anything load-bearing. Document the decision and the fallback (fork) in the architecture decision record.
Scaling. Negligible direct scaling concern — the package is a command-layer convenience, and throughput is governed by Verbs' event store and projection infrastructure, not by this package. The scaling question belongs to the Verbs evaluation, not here.
Failure modes.
Ramp-up. Learning the package itself is trivial — likely an afternoon for an engineer already fluent in Verbs. The real ramp is event-sourcing literacy in the team, which is a Verbs cost, not a verbs-commands cost. If the team lacks that fluency, this package's low adoption is a distraction from the actual investment.
TPM recommendation. Do not adopt as a standalone dependency. Its value is entirely derivative of a Verbs commitment, and its adoption signals are too weak to justify an unowned dependency. If Verbs is adopted, evaluate this package in a one-day spike with a bias toward vendoring or in-house replication, given how little surface area it appears to cover.
How can I help you explore Laravel packages today?