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

Command Bus Bundle Laravel Package

konradpodgorski/command-bus-bundle

A command bus package for PHP/Laravel that dispatches commands to their handlers, promoting clean separation between application logic and infrastructure. It provides a structured way to organize command execution and middleware-style handling.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — the first thing to resolve is that the premise is wrong. The brief frames this as a Laravel/PHP package; the artifact is a Symfony bundle (*Bundle class, DI extension, compiler passes, service tagging). Laravel has no bundle/compiler-pass concept — its extension point is the service provider. So the package's actual deliverable, the Symfony container wiring, is precisely the part that is not portable. The only possibly reusable asset is the underlying command-bus library if it is framework-agnostic, and adopting just that means re-implementing all the wiring the bundle exists to provide.

Integration feasibility — low, and largely redundant even if it installed. Laravel already ships a first-class command bus: dispatch(), Bus::chain()/Bus::batch(), queue-backed async via ShouldQueue, and bus middleware/pipelines. Everything this bundle advertises (command→handler mapping, middleware pipeline, container-based handler resolution, synchronous dispatch) is either native or trivially achievable with framework primitives. On top of that, a Symfony bundle of unknown vintage will pin symfony/* and PHP constraints that likely conflict with modern Laravel (PHP 8.1+); a resolver failure is the most probable composer require outcome, and a clean install would still not mean "usable."

Technical risk — high, and concentrated in maintenance rather than correctness. The danger isn't a loud day-one break; it's "works in a spike, then silently rots." Zero stars, zero dependents, single maintainer, score 0.06 means no production usage to borrow confidence from, no issue history to mine for failure modes, and no third party validating the wiring. Bringing it onto a Laravel request path creates a permanent internal fork obligation for a capability we already own.

Key questions before any further effort:

  1. Is the core command-bus library genuinely framework-agnostic, or does it lean on Symfony contracts?
  2. What are the declared php and symfony/* constraints, and do they resolve against our target Laravel version?
  3. Does it support async/queued command handling at all, or synchronous only?
  4. What middleware, retry, and failure semantics exist — and does any of it exceed Illuminate\Bus?
  5. Is there a test suite, and does it run on a currently supported PHP version?
  6. Any commit activity in the last 12 months, or is this effectively archived?
  7. Is the maintainer reachable, and are there license/ownership considerations in vendoring?
  8. Who filed this as Laravel, and does the backlog item need correcting upstream?

Integration Approach

Stack fit — recommend against adoption. The right target for command/handler separation in a Laravel codebase is Illuminate\Bus\Dispatcher: dispatch() for sync, ShouldQueue for async, Bus::chain()/Bus::batch() for orchestration, bus middleware for cross-cutting concerns. Framework-vendor maintained, versioned with the framework, zero new dependencies. This package layers a foreign abstraction on top with none of those properties.

Migration path — there isn't a productive one. Two scenarios:

  • Greenfield Laravel service: no reason to start here; use the native bus.
  • Symfony → Laravel port: the port target should be Laravel's dispatcher, not a Symfony bundle shimmed into Laravel. Carrying container semantics across the boundary imports coupling without importing the container that justified it.

If a team genuinely runs Symfony alongside Laravel (rare, e.g. phased migration), this bundle is a candidate for the Symfony side only — but the adoption signal still argues for Symfony Messenger or another well-adopted option there.

Compatibility — assume conflict until proven otherwise. Modern Laravel requires PHP 8.1+; a bundle of this vintage plausibly pins ^3.4|^4.0 and PHP 7.x. Expect either resolver failure or, worse, a resolution that drags an old Symfony component tree in beside illuminate/*.

Sequencing (timeboxed, ~1 engineer-day, decision-gated):

  1. Resolve check. In a throwaway Laravel app at our target version, attempt composer require konradpodgorski/command-bus-bundle. Record the resolution outcome and the composer why tree. Failure to resolve is the answer — stop.
  2. Capability diff. Read the source (it's small) and enumerate what it provides versus Illuminate\Bus, specifically on async dispatch, middleware ordering, and handler resolution. Expect "nothing."
  3. Maintenance check. Last commit date, open issues, test suite, PHP version in CI. Any failure closes the evaluation.
  4. Decision. Default outcome: reject for adoption, retain as design reference only if the capability diff surprises us. If rejected, document the Laravel-native pattern (command DTO + handler + dispatch()) as sanctioned so the question doesn't reopen.

Operational Impact

Maintenance — the dominant cost, and it lands on us. Zero dependents means zero external bug-finding: every defect is discovered by our traffic. Zero stars means no organic contributor base. We would be adopting orphaned code and assuming maintainer duties, for a capability the framework supplies. Any internal fork would need to track PHP minors and Laravel majors indefinitely.

Support — effectively none. No vendor, no community, no issue history to search. Documentation appears README-level at best, and per the developer notes even setup requires reading DependencyInjection/ and compiler passes to infer the contract. All operational knowledge would be reverse-engineered by our own engineers and held by whoever did the spike — a single point of failure on a component nobody else in the market uses.

Scaling — orthogonal at best, harmful at worst. A synchronous in-process bus doesn't improve throughput; it improves code organization. Real scaling (fan-out, retry, backpressure, worker pools) requires queue semantics, which is Laravel's queue subsystem, not this bundle. If it offers no async transport, it's a design pattern, not infrastructure. If it does, we'd be running a second, unvetted dispatch path beside Illuminate\Bus — two ways to do the same thing, with divergent observability.

Failure modes to anticipate:

  • Boot-time DI failure on a framework or PHP upgrade — the classic silent-break-then-scramble, surfacing as a deploy failure rather than a test failure.
  • Unhandled handler exceptions with no defined retry or dead-letter semantics, leaving failed commands in an indeterminate state.
  • Composer lock drift — a transitive Symfony pin silently blocking a PHP upgrade months later, discovered under deadline pressure.
  • Knowledge loss — the one engineer who understood the wiring leaves; nobody can safely modify or remove it.
  • Abandonment — upstream goes dark (it may already be dark), and we inherit a security-response gap in the request path.

Ramp-up — deceptively cheap, then expensive. The code is small, so a senior engineer reads it in half a day. But with no examples, no docs, and no prior adopters, that half-day produces understanding held by one person. Compare Illuminate\Bus, where ramp-up is near-zero because it's standard Laravel knowledge every hire already has and every framework upgrade covers.

Bottom line for the roadmap: reject. This is a Symfony-specific integration for a framework we are not using, with no adoption evidence and no capability we lack. A one-day timeboxed spike is defensible only to produce a written rejection record that stops the question recurring — and to correct the Laravel/Symfony mismatch in the backlog. The engineering budget is better spent standardizing the team on Laravel's native command bus.

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.
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log