Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Tactician Bundle Laravel Package

micro-module/tactician-bundle

MicroModule TacticianBundle integrates the Tactician command bus into Symfony applications, helping you configure commands, handlers, and middleware with less boilerplate and structure command-driven business logic cleanly.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Architecture direction: command bus vs. framework-native messaging. Adopting a command bus (Tactician) is a structural decision — it shapes how write-side operations, validation, and transactions are dispatched. This package is only the DI/wiring layer that makes that decision ergonomic in Symfony; it does not create the capability. Treat it as a consequence of the architecture decision, not the driver of it.
  • Build vs. buy vs. borrow. This is a thin integration bundle for an MIT library (Tactician). The real "buy" is Tactician itself plus the upstream league/tactician-bundle. This fork is effectively borrow-with-risk: zero stars, zero dependents, zero score means no community validation and no maintenance guarantee. Any decision to depend on it should be priced as an internal fork, not an off-the-shelf dependency.
  • Framework fit — critical flag. The package is a Symfony bundle, not a Laravel package. If the roadmap target is Laravel, this is out of scope for production use; the equivalent decisions there are Laravel's native bus/queue dispatch or using league/tactician directly without a bundle. Do not let a "PHP package" label blur that distinction in planning docs.
  • Incremental modernization of legacy Symfony apps. The realistic use case: an existing Symfony application that wants to introduce command/handler separation without a full migration to Symfony Messenger. Low blast radius, reversible, and confined to service wiring.
  • Roadmap sequencing for async/queue work. Tactician's middleware model is a reasonable on-ramp for transactions, logging, and validation around commands — but it is not a transport/retry/scheduling framework. If the roadmap includes async transports, retries, or failure queues, that decision points to Symfony Messenger, and adopting Tactician now creates a likely future migration.
  • Team capability and hiring. Choosing a niche command bus with a 0-star integration layer adds onboarding cost. Weigh against Messenger, which new hires are more likely to already know and which has first-party documentation.

When to Consider This Package

Consider it only when all of the following hold:

  • The codebase is Symfony, on a PHP/framework version the bundle actually supports (verify composer.json constraints — the repo gives no compatibility signal).
  • The team has already chosen Tactician as the command bus, typically because it is already present in the codebase or was chosen for its minimalism.
  • The need is narrow: wiring handlers, middleware, and the command bus service into the container. You are not expecting features, releases, or support.
  • You are prepared to vendor, pin, or fork it internally — or you have confirmed it is a fork of thephpleague/tactician-bundle and can simply use upstream instead, which is the far better default.
  • The decision is reversible: the integration surface is small enough that swapping to upstream or to Symfony Messenger is a contained refactor.

Look elsewhere when:

  • You are on Laravel. This is a Symfony bundle; there is no integration path. Use Laravel's native dispatch/queue or league/tactician standalone.
  • You are starting a new Symfony project. Symfony Messenger is first-party, maintained, and covers sync and async. Choosing a 0-adoption fork to save a thin wiring layer is a poor trade.
  • You need async transports, retries, failure handling, scheduling, or observability. Tactician plus this bundle is not that product.
  • You require a supported dependency. Zero dependents and zero stars mean no downstream ecosystem has pressure-tested it; there is no implied SLA, no issue triage history, and no upgrade path you can rely on. Supply-chain review should treat this as unvetted code.
  • You cannot absorb maintenance. If no engineer can own a vendored fork, do not adopt it.

How to Pitch It (Stakeholders)

Executive summary. This is a small, MIT-licensed Symfony integration bundle for the Tactician command bus. It is not a product investment and not a platform commitment — it is a wiring convenience for teams that have already standardized on Tactician. The honest headline is low cost, low lock-in, and low signal: zero stars, zero dependents, and no evidence of external adoption mean we should not treat it as a supported dependency. My recommendation is to not adopt this fork in production as-is. If the underlying architecture (command/handler separation) is valuable to us, adopt the maintained upstream league/tactician-bundle, or — better for a new build — Symfony Messenger, which is first-party and covers the async roadmap we will eventually need. This package is most useful to us as a reference implementation: a compact example of how the wiring is done, which an engineer can replicate in a few hours with no dependency risk.

For engineering. The integration surface is thin — container registration for the command bus, handler mapping, and middleware. That means the cost of not using it is low, and the cost of being stuck on an unmaintained fork is real. Before any use: confirm it is a fork of the upstream bundle and diff it; verify framework/PHP version constraints; check the middleware ordering and transaction semantics; and confirm we can vendor it. If those checks pass and we are already committed to Tactician, use it pinned and vendored with a named owner. If any check fails, use upstream or Messenger.

Decision asked of stakeholders. Approve the architecture direction (command bus for domain write operations) and the dependency policy (no unmaintained forks in production without an internal owner). Do not approve this specific package as a platform dependency on the strength of its description alone.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle