garlic/bus
garlic/bus is a Laravel package that adds a bus abstraction for dispatching commands or messages to their handlers, helping keep controllers thin and application logic organized. It is a small, early-stage package best suited to simple projects or experimentation.
Architecture fit — unchanged: poor, with a fundamental mismatch. Release 1.6.17 does not alter the core finding. garlic/bus remains a Symfony bundle (BusBundle) that registers services into Symfony's DI container and hooks the Symfony kernel/event system. Laravel has no bundle system, no services.yaml compilation pass, and a different container contract, so the package still cannot be composer required into a Laravel app and used. Leveraging it still requires either standing up a Symfony service alongside the Laravel app and communicating over the network, or writing an adapter that reimplements the bundle's wiring inside a Laravel service provider. Both remain disproportionate to any message-bus value on offer.
What the new release actually is. The 1.6.17 note reads, in full, Fix event processor. That is a patch-level bug fix — no new feature, no breaking change, no deprecation, no migration note. On its own it neither improves nor degrades the adoption case. It does, however, carry two pieces of signal worth recording:
1.6.17 version number implies a materially longer release history than the catalogue captured. That claim is retracted; the maintenance picture is now unverified rather than definitively dead. This is a data-quality correction, not a change of verdict.Integration feasibility — still low. A patch release does not create documentation, a support channel, a published wire format, or a Laravel integration path. Adoption signals (stars, dependents, third-party references) remain negligible. Feasibility work still begins with source review, not integration.
Technical risk — high, marginally re-scoped.
garlic/* packages.Key questions for the requester:
Assessment: the release does not meet the bar for changing the recommendation. Treat the package as a design reference, not a dependency — and note that the prior "single release / abandoned since 2019" justification is superseded by "activity unverified, defect history opaque."
Stack fit — not viable as-is. Target is a Laravel application; the artifact targets Symfony 4. A patch release does not close a container-contract gap. Installing it would still require pinning the framework back several major versions, and the version history implied by 1.6.17 does not suggest the constraints have been modernised — verify, but assume not.
Migration path — unchanged: port concepts, not code.
Compatibility. Re-verify on 1.6.17 specifically — check the diff for composer.json constraint changes, then run the full transitive garlic/* resolution. Budget half a day for composer why-not analysis.
Sequencing (one-week timeboxed spike, in order):
Steps 1–3 are cheap. Do not let the spike drift into "adapting the bundle"; that path still has no owner and no end date.
Maintenance — still the dominant cost, with a caveat. The prior framing ("no patch channel at all") is softened by the existence of 1.6.17, but not resolved. A single undocumented patch tells us someone can build and tag the package; it does not tell us whether defects we file will be fixed, whether security issues get a response, or whether the cadence survives the next reorganisation. Plan on fork-and-own. That converts a "free" dependency into a permanent headcount obligation for a capability Laravel provides natively — still the strongest argument against adoption.
Support. Effectively unchanged: negligible community footprint, no issue-history corpus, no third-party write-ups. Troubleshooting degrades to reading source under incident pressure. Vendor support remains an informal arrangement, not a contract. A patch release is not a support channel.
Scaling. Unknowable from the metadata and unaffected by a bugfix. Prefetch, worker concurrency, connection pooling, and backpressure are undocumented; any capacity plan requires load testing from scratch, on a PHP 7.x-era runtime with limited tuning headroom.
Failure modes — the release raises this concern rather than lowering it. Buses fail silently: message loss on disconnect, duplicate delivery without idempotency keys, poison messages with no dead-letter path, retry storms without backoff, swallowed handler exceptions. The fact that the event processor needed a patch is direct evidence that this class of defect reaches consumers. Without a changelog we cannot distinguish "one narrow edge case" from "a long-standing correctness problem." Horizon, by contrast, gives us retries, backoff, DLQs, and failed-job introspection today.
Ramp-up. No docs, no examples, no tests; an engineer inherits tribal knowledge held by another organisation. Two to three weeks to basic competence versus days for the native equivalent — and that investment is stranded on an EOL framework.
Evidence caveat. The source dataset supplied for this review is empty, and the release note is a single clause with no date. Treat both the prior assessment's release history and this revision's cadence inference as provisional; the 1.6.17 diff is the cheapest way to replace inference with fact.
Recommendation — stands. Reject as a dependency. Spend the trivial effort to read the 1.6.17 diff (it may resolve the "what breaks in the event path" question), then implement the capability on Laravel's native queue or a maintained bus package. Record the decision and the corrected maintenance facts so the candidate is not re-evaluated purely on the appearance of a new tag.
How can I help you explore Laravel packages today?