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

Bus Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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. It invalidates a load-bearing fact in the previous assessment. We previously stated "a single release in April 2019" and cited "last release 2019-04-22" as evidence of abandonment. A 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.
  2. The defect class is the worst one for this component. "Fix event processor" is consistent with events being dropped, misrouted, or double-processed. For a message bus those are silent, high-severity failures. The existence of the fix is mildly reassuring; the absence of a changelog covering 1.6.0–1.6.16 means we cannot tell what else was broken, for how long, or whether the fix is general or narrow to one reporter's case.

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.

  • Maintenance status: unverified, not resolved. Someone cut a patch. That is evidence of activity, not of a support commitment, an SLA, a security-response process, or a cadence. One bugfix does not reverse four-plus years of apparent dormancy without a changelog and a stated policy.
  • Compatibility: unchanged in substance until proven otherwise. Confirm whether 1.6.17 moved the PHP or Symfony component constraints; a patch release usually does not, which leaves the Symfony 4 / PHP 7.x-era footprint intact and still colliding with Laravel 9/10/11.
  • Bus-factor and provenance: unchanged. Scoped to one organisation's microservice estate; the real dependency surface includes sibling garlic/* packages.
  • Security posture: unchanged. No evidence of a patched transitive dependency tree. A bus sits on the trust boundary between services.
  • Semantics still unknown: synchronous command dispatch, async transport with retries, or event fan-out — we still cannot size the replacement from the notes.

Key questions for the requester:

  1. Same as before: what capability is actually needed — command/query separation, async job dispatch, or inter-service eventing?
  2. New: who cut 1.6.17, on what date, and where is the changelog for 1.6.0–1.6.16? Is this an upstream release or a downstream fork's patch?
  3. New: what exactly did the event-processor fix — loss, duplication, ordering, or a crash? Request the diff. This is a 15-minute review that tells us more about production maturity than the release note does.
  4. New: did 1.6.17 change PHP or Symfony constraints? If yes, re-check the conflict analysis; if no, the compatibility verdict stands untouched.
  5. Is there an existing Symfony service in the estate that already depends on this? If not, the candidate is orphaned regardless of cadence.
  6. Does the bundle wrap a transport (RabbitMQ, Redis, AMQP) or implement its own? Is the message envelope published anywhere?
  7. Who owns it internally, and is there a funded commitment to maintain it?

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."

Integration Approach

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.

  • Async jobs/queues: Laravel's native queue with Redis or SQS, plus Horizon.
  • Command/query bus semantics: a maintained package (Symfony Messenger standalone, Laravel-native alternatives such as Laravel Bus / Ecotone), not this one.
  • Cross-service eventing: standardise on a broker contract (CloudEvents-style envelope over RabbitMQ/Kafka) and build producers/consumers in-house with a durable owner.
  • Symfony interoperability: keep the bundle on the Symfony side, isolate behind a network boundary, do not bridge container semantics into Laravel.

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):

  1. Read the 1.6.17 diff — scope the event-processor fix and confirm no constraint changes. Cheap, and it settles questions 2–4 above.
  2. Source audit — transport, envelope format, retry/DLQ behaviour, test coverage. Gate: is there a coherent contract worth copying?
  3. Dependency graph — unmaintained transitive packages and CVE exposure.
  4. Capability mapping — the needed behaviour, in framework-neutral terms.
  5. Native prototype — Laravel queue plus a thin handler/middleware layer; benchmark against the requirement.
  6. Decision — adopt native, or formally reject the requirement as out of scope.

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.

Operational Impact

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.

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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core