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.
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:
composer update and working are different claims.Key questions.
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.)Illuminate\Bus already answers it.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.
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:
dispatch() or Bus::dispatch(), model middleware as Bus::pipeThrough() middleware, and use ShouldQueue plus Horizon for async. Lowest cost, no new dependency.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.
composer why-not, and record whether the Symfony constraint blocker is genuinely cleared. This is a fact-finding task, not a green light.Bus::pipeThrough(); confirm parity.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.
How can I help you explore Laravel packages today?