tillkruss/laravel-tactician
Laravel integration for the Tactician command bus, letting you dispatch commands to handler classes through Laravel's container. Includes a service provider, facade, and config for mapping commands to handlers and middleware.
composer.json.dispatch() entry point. Reading it is a cheap way to price an internal build (realistically a few hundred lines) and to write acceptance criteria for it.Treat "consider" here as consider reading and reimplementing, not consider installing.
Look at it when:
league/tactician into Laravel's container, config, and package auto-discovery before writing your own provider.Look elsewhere — which covers essentially every other case — when:
league/tactician directly behind a thin service provider, or use Laravel's own bus (Illuminate\Bus\Dispatcher, dispatchable jobs, pipelines), which already gives you container resolution, middleware, queueing, retries, and batching.Caveat on the framing: a 1.0.0 tag is normally a credibility signal, but here it is a 2016 tag on a repository that has since been archived. The stable-release milestone should not be read as current maintenance evidence; the archival status supersedes it.
For executives: This is not a package we should install. It is archived, its last release was in 2016, it supports Laravel 5 only, and it has effectively no user base — so it carries maintenance and security risk while offering no support path. What it does give us is a clear, cheap blueprint for a piece of internal structure: a command bus that keeps controllers thin and makes cross-cutting concerns like authorization, transactions, and logging consistent instead of hand-rolled per feature. Recommendation: decline the dependency, fund a small, time-boxed internal implementation (or use Laravel's built-in bus, which is already in the framework), and treat this repository as documentation. The ask is measured in engineering days, not in an ongoing vendor relationship, and it directly reduces the cost of every future workflow feature.
For engineering: Do not add tillkruss/laravel-tactician to composer.json. The integration is roughly a service provider, a config file mapping the command bus and handlers, middleware pipeline support, and a dispatch() convenience — a small enough surface to own outright. Preferred path on a modern Laravel version is the framework's native bus and queued jobs, optionally with league/tactician underneath if we want an explicit command/handler split. If we do build a custom bus, isolate it behind our own interface and adapter so the implementation can change without touching feature code. Verification for the spike: handler resolution from the container, one middleware (transaction or authorization), one queued command with retry behaviour, and a documented extension point. Success criteria and a rollback path before we touch a production workflow.
How can I help you explore Laravel packages today?