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

Simplebus Bundle Laravel Package

happyr/simplebus-bundle

Symfony bundle that integrates SimpleBus with the framework’s DI container, helping wire command, query, and event buses, register handlers and middleware, and use message buses in Symfony apps with minimal configuration.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What changed in 0.1.2. A single line: "Dependency fix." No changelog detail, no diff of composer.json constraints, no CI signal, no test evidence. The version also moved to 0.1.2, which is a step backwards from the previously observed 2017 1.x-era release — itself a signal that release/versioning discipline is not intact. The data feed for this review was empty, so nothing here is independently verified; everything below treats the note as an unconfirmed claim.

Architecture fit. Unchanged and still the decisive issue. happyr/simplebus-bundle is a Symfony bundle, not a Laravel package: a Bundle class, a DI Extension with a config tree, and compiler passes that auto-tag handler services. None of that maps onto Laravel's container. The reusable asset remains the framework-agnostic simple-bus/simple-bus core; the bundle is the layer we would discard. Laravel already ships an overlapping first-party implementation — Illuminate\Bus\Dispatcher, ShouldQueue, Bus::pipeThrough(), and the queue/Horizon stack — so architectural overlap stays close to total.

Integration feasibility. Low, unchanged. A dependency fix does not create a service provider, a facade, publishable config, or handler auto-discovery for Laravel. A bridge would still require three bus singletons, a config tree, a handler registry (attribute scan plus classmap, or explicit registration), and a reimplementation of the compiler-pass behaviour — multi-day work plus permanent in-house ownership of glue that duplicates native functionality.

Technical risk. The named hard blocker was Composer: constraints targeting symfony/symfony ^2.7|^3.0 and PHP 7.0-era syntax against a Laravel that requires Symfony 6/7 components. A "dependency fix" plausibly targets exactly that, but it fixes at most one of four blockers. The other three are untouched: no Laravel integration surface, effectively unreviewed code (~3 stars, 0 dependents, last substantive release 2017), and no maintainer to route security issues to. Two additional cautions apply specifically to a dependency-only patch:

  • A constraint loosening in a dormant repo without visible CI or tests is unverified resolution, not proven compatibility. Passing composer update and working are different claims.
  • An unexplained dependency bump in an abandoned package is a mild supply-chain flag — review the commit diff and any new transitive dependencies before allowing it anywhere near the dependency graph.

Key questions.

  • What exactly changed in composer.json — which constraints, loosened or widened, and does it actually resolve against Symfony 6/7 and PHP 8.2+? (30-minute check: composer why-not happyr/simplebus-bundle.)
  • Was this patch accompanied by CI, a tagged changelog entry, or a test run? If not, treat the fix as unproven.
  • Who authored 0.1.2? A one-off drive-by commit is not the same as a returning maintainer, and does not restore a support path.
  • What problem are we actually solving — CQRS separation of command/query buses, or just asynchronous job execution? If the latter, Illuminate\Bus already answers it.
  • Is any production system running on this bundle? Dependents are zero; if a team claims otherwise, that is a discovery finding worth chasing.
  • Which SimpleBus middleware do we need (Doctrine transaction wrapping, domain event dispatch, logging)? Each has a direct Laravel pipeline equivalent; if the list is empty, the case collapses.
  • Do we need cross-framework parity with a Symfony service? If yes, evaluate Symfony Messenger rather than resurrecting this bundle.

Recommendation: reject — unchanged. The 0.045 score stands. One dependency patch does not move a package from "wrong framework, unmaintained, fully overlapped by native functionality" to viable. Re-open only if all of the following hold: the constraint diff verifiably resolves on our current Laravel/PHP matrix, a real maintainer re-engages with tests and CI, and a concrete middleware need cannot be met by Bus::pipeThrough(). A time-boxed 30-minute verification of the first condition is the only work this release justifies.

Integration Approach

Stack fit. Poor. On Symfony 3.x the bundle fits cleanly; on Laravel it does not fit at all and cannot be made to without replacing the half that makes it a bundle. 0.1.2 changes nothing here — a Symfony bundle remains a Symfony bundle regardless of its dependency constraints.

Migration path. Two viable routes, in order of preference, neither of which depends on 0.1.2:

  1. Adopt the native Laravel bus. Map each command/query to a plain DTO, dispatch via dispatch() or Bus::dispatch(), model middleware as Bus::pipeThrough() middleware, and use ShouldQueue plus Horizon for async. Lowest cost, no new dependency.
  2. Use simple-bus/simple-bus core only. If strict command/query/event bus separation is genuinely required, add the core library and write a ~150-line BusServiceProvider plus a handler registry (a PHP attribute plus classmap scan is the least surprising mechanism). Define buses in config/bus.php. Budget the provider as production code with tests, not a spike artefact.

Do not attempt to install the bundle and shim the compiler passes. Even if 0.1.2 clears the Composer conflict, a shim is more work than option 2 and buys a support obligation with no upside.

Compatibility. If the dependency fix is real, re-verify rather than assume: confirm resolution against our exact Laravel/PHP matrix, then audit the core library for PHP 8.x deprecations (typed properties, dynamic property warnings, #[\ReturnTypeWillChange] gaps) if option 2 is pursued. Pin whatever survives and vendor it if upstream stays dark.

Sequencing.

  1. New step zero (30 min): diff 0.1.2, run composer why-not, and record whether the Symfony constraint blocker is genuinely cleared. This is a fact-finding task, not a green light.
  2. One-day spike: enumerate required middleware and confirm the native bus covers them.
  3. Prototype one command path on the native Laravel bus end-to-end, including queueing.
  4. Diff the middleware list against Bus::pipeThrough(); confirm parity.
  5. Decide native vs. core-library bridge, and record the decision.
  6. If any bundle glue is borrowed, copy it into our codebase under test rather than depending on the package.

Operational Impact

Maintenance. A single dependency commit does not constitute upstream upkeep after an eight-year gap. Ownership of any fork or bridge remains ours alone; with zero dependents there is no ecosystem to absorb fixes or share the burden. Note also that 0.1.2 introduces change without a maintenance commitment — the least useful combination, since it can tempt a team into adoption while leaving the support position exactly as it was.

Support. No confirmed maintainer to escalate to, documentation limited to a 2017 README, negligible Stack Overflow footprint. Every question becomes an internal investigation. One drive-by patch does not create a security response path or a CVE process.

Scaling. The bus is not the scaling lever — it is in-process and synchronous by design, with no transport of its own. Real throughput comes from queue workers, which Laravel already provides (Redis/SQS plus Horizon for visibility, retries, balancing). If a stakeholder cites 0.1.2 as renewed momentum, correct that framing explicitly: a dependency patch is not a roadmap.

Failure modes. Watch for: unregistered handlers producing runtime errors or silent no-ops (no auto-tagging equivalent in Laravel); middleware ordering bugs that are hard to observe; message objects not surviving queue serialization (SimpleBus messages are not queue-ready by default); domain events left undispatched after transaction commit; and unpatched vulnerabilities in an abandoned dependency tree with no CVE response path. Add for 0.1.2: a dependency constraint loosening that resolves but was never exercised by tests, and any new transitive dependency introduced by the fix — review the diff before approval.

Ramp-up. Steep relative to value, and unchanged. The team already knows dispatch(), jobs, and middleware; SimpleBus introduces parallel vocabulary (Command/Query/Event buses, handler resolution, middleware ordering) for the same concepts. Estimate one to two weeks to bring a mid-level engineer to competence — all of it spent on a single-consumer library with no community to learn from, and now with a version history that must itself be explained.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource