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

Enqueue Extra Bundle Laravel Package

koderoff/enqueue-extra-bundle

Symfony bundle that integrates enqueue with extra message queue features. A low-adoption package with minimal documentation, best suited for experimental or internal Symfony projects rather than production use.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • The package is a Symfony bundle (*Bundle naming, expected Kernel registration, DI extension, config tree, compiler passes). Laravel has no equivalent bundle lifecycle; there is no bundles.php, no Extension::load(), no tagged-service autoconfiguration. The wiring layer is effectively inert in a Laravel app.
  • The only reusable asset is whatever framework-agnostic code sits beneath the bundle glue (transport decorators, message producers/consumers, middleware). Whether any of that exists independently of Symfony's ContainerInterface and EventDispatcherInterface is the single most important unknown to resolve before committing engineering time.
  • The underlying ecosystem (php-enqueue) does have a Laravel integration path (enqueue/laravel-queue and Laravel's native queue drivers). That is the architecturally correct seam; this bundle is not.

Integration feasibility

  • Composer resolution is the first gate. A 2020-era bundle will constrain symfony/framework-bundle, symfony/dependency-injection, and php to 7.x-era ranges. Those constraints conflict with Laravel 10/11 (PHP 8.1+) and with current Symfony. Expect composer require to fail or force a dependency downgrade that breaks the host app.
  • If resolution succeeds only via --ignore-platform-reqs or manual constraint overrides, the install is already in an unsupported state and should be treated as a vendored fork, not a dependency.
  • Even if installed, the bundle's services never register, so the package contributes zero runtime behavior without a hand-written Laravel service provider that re-implements the DI extension. That port is unbounded work with no upstream to diff against.

Technical risk

  • Maintenance risk: critical. Zero stars, zero dependents, no release since 2020-05-17, aggregate score 0. There is no signal of an active maintainer, no dependent ecosystem to surface regressions, and no downstream consumers to absorb the cost of a fork.
  • Security risk: high. No releases means no security patch cadence and no advisory feed. As a messaging component it sits on a trust boundary (serialized payloads, broker credentials, transport config); unpatched deserialization or transport code is a live exposure.
  • Abandonment risk: high. Symfony 6/7 removed or deprecated several DI patterns a 2020 bundle relies on. The code likely does not boot on modern Symfony even outside Laravel, so the "port it later" fallback is weaker than it appears.
  • Opportunity cost: high. The unique value proposition of an "extra" bundle is usually a thin convenience layer (extra transports, retry/delay semantics, routing sugar). Those are typically re-implementable in a Laravel service provider in days, against maintained primitives.

Key questions

  1. What exactly does the "extra" layer add over enqueue/enqueue-bundle — a transport, middleware, retry/delay semantics, or only config sugar? Is any of it novel, or is it a wrapper?
  2. Are the added classes PSR-4 autoloadable and free of Symfony contracts, or is every class coupled to ContainerInterface/EventDispatcherInterface?
  3. What are the composer.json constraints on php, symfony/*, and enqueue/*, and does a clean composer require succeed against our Laravel version without overrides?
  4. License and provenance: is this a fork of an upstream bundle? If so, which one, and is that upstream still maintained (making this bundle redundant)?
  5. Test coverage and CI: are there tests that pin the extra behavior, or would a port be validated only against production traffic?
  6. Is there an active fork or successor package with the same feature set?

Integration Approach

Stack fit

  • Poor as a direct dependency. Symfony bundle → Laravel is a structural mismatch, not a configuration gap.
  • Correct target stack: enqueue/enqueue (core) + enqueue/laravel-queue for the queue bridge, or Laravel's first-party queue with a broker driver (php-amqplib/RabbitMQ, Redis + Horizon, SQS). Choose based on the transport this bundle was wrapping, not on the bundle itself.

Migration path

  1. Spike (time-boxed, ~2 days): attempt clean install in a scratch Laravel app at our target PHP/Laravel version. Record the exact resolution failure or the exact set of services that never register. This determines whether we are evaluating a dependency or a code excerpt.
  2. Extract, don't integrate: if step 1 shows reusable logic, copy the smallest viable set of framework-agnostic classes into app/Support/Messaging under our namespace, with attribution and license check. Treat it as a fork with us as maintainer.
  3. Re-implement the glue: write a Laravel service provider that binds the extracted classes and reads config from config/queue.php / a dedicated config/messaging.php. Do not attempt to emulate Symfony's config tree.
  4. Replace where possible: map each "extra" feature to a maintained equivalent. Delayed/retry → Laravel queue retry_after/backoff or broker-native TTL+DLX. Routing → enqueue routing or Laravel queue connections. Middleware → Laravel job middleware.
  5. Cut over behind a contract: define an internal MessageBus interface in the app, implement it with the ported code, run both paths in parallel on a non-critical queue, then retire the legacy path.

Compatibility

  • Assume the published constraints target PHP 7.2–7.4 and Symfony 4/5. Verify against our actual matrix (PHP 8.2/8.3, Laravel 10/11). Do not accept --ignore-platform-reqs as a resolution strategy for production.
  • Serialization compatibility matters more than DI compatibility: if the bundle defines message envelopes or headers, confirm existing in-flight messages deserialize correctly after the port. This is the most likely source of a silent, hard-to-debug cutover failure.

Sequencing

  • Gate 0: confirm the feature is not already covered by a maintained package (highest-probability outcome: it is).
  • Gate 1: clean-install spike result.
  • Gate 2: framework-agnostic code extraction + license review.
  • Gate 3: parity tests against the old behavior on a shadow queue.
  • Gate 4: production cutover, one queue at a time.

If Gate 0 or Gate 1 fails — the expected outcome given 0 stars, 0 dependents, and a two-year-stale release — the recommendation is to not adopt and to solve the underlying need with maintained primitives.

Operational Impact

Maintenance

  • Adopting this package transfers 100% of maintenance to us on day one. The bundle is unmaintained; there is no upstream to rebase onto, no changelog to read, and no issue tracker with answers.
  • Budget for: PHP 8.x compatibility fixes, Symfony-contract removal, and ongoing ownership of a small but permanently-forked messaging layer. For a "convenience" layer, that is a poor trade.

Support

  • No vendor, no SLA, no security advisory feed, no community. Internal support means whoever did the port becomes the sole escalation path — a bus-factor of one.
  • Dependency scanning will flag the package as unmaintained; expect to carry an explicit, documented exception in the security review, or to exclude it by vendoring under our namespace (which hides the signal but does not remove the risk).

Scaling

  • Runtime scaling characteristics are inherited almost entirely from the underlying transport (AMQP/Redis/DB), not from the bundle; the bundle's overhead is negligible. The scaling concern is organizational, not technical: a single-owner messaging layer is a throughput ceiling on the team, not on the system.
  • Throughput, prefetch, and consumer concurrency tuning will be undocumented and must be derived from the underlying enqueue transport docs, which may not match the bundle's defaults.

Failure modes

  • Install-time: Composer constraint conflict; dependency downgrade that breaks unrelated parts of the app; silent use of platform-req overrides.
  • Boot-time: services never registered (most likely), or registered via a hand-rolled provider that diverges from the bundle's assumptions.
  • Runtime: message loss or duplication if retry/delay semantics are re-implemented slightly differently; envelope/header incompatibility causing deserialization failures on in-flight messages; missing observability because the bundle's logging hooks were Symfony-event-based.
  • Long-term: PHP major-version upgrade blocks because the fork's messaging code is pinned to deprecated APIs.
  • Security: unpatched serialization or transport code on a trust boundary, with no advisory path to learn about it.

Ramp-up

  • Low code volume, high reverse-engineering cost. There is no documentation and no usage examples, so onboarding requires reading the bundle source plus Symfony DI semantics the team may not know.
  • Realistic estimate: 1–2 engineer-days to evaluate and reach a go/no-go, 1–2 engineer-weeks to extract, port, and parity-test if the go decision is made. Compare that against the cost of adopting a maintained queue driver, which is measured in hours.
  • Recommendation to stakeholders: treat this package as a reference implementation to read, not a dependency to ship. Given zero dependents, zero stars, and a 2020 last release, the expected value of adoption is negative unless the spike proves a genuinely novel, transport-agnostic feature that cannot be reproduced with maintained primitives.
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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings