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

Zend Queue Laravel Package

zendframework/zend-queue

Zend Queue provides a unified PHP interface for message queue systems, with adapters for arrays, databases, Memcache, MongoDB, and other backends. It supports sending, receiving, and processing messages through a consistent API, simplifying asynchronous job handling in Zend Framework applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What the package actually is. zendframework/zend-queue is a framework-agnostic queue abstraction from the Zend Framework 2/3 era: a Queue interface with pluggable adapters (Array, Null, Db, Mongo, Memcached, Redis, AMQP, Beanstalkd), plus message and exception primitives. It is not a Laravel package. It ships no service provider, no facade, no config stub, no artisan commands, no Illuminate\Contracts\Queue implementation, and no worker process. It is a library that predates and overlaps with the problem Laravel's queue component already solves.

Architecture fit: poor, and structurally duplicative. Laravel already owns a queue abstraction (Illuminate\Queue\Queue, Illuminate\Contracts\Queue\Queue, Job, Worker, QueueManager, failed-job storage, retries/backoff, events, and Horizon). Zend Queue sits at the same layer of the stack. Adopting it does not fill a gap; it introduces a second, parallel abstraction with different message semantics, different serialization expectations, and no shared failure model. The only coherent integration shape is a bridge: an adapter implementing Laravel's Queue contract, delegating to a Zend\Queue adapter. That is net-new code we own forever, written to preserve a dependency nobody maintains.

Integration feasibility: low. Concrete blockers a TPM should expect the engineering spike to surface:

  • Composer/abandoned status. The package is marked abandoned on Packagist and the repository is archived read-only. Any install emits an abandonment warning and no upstream will ever ship a CVE fix.
  • PHP runtime ceiling. The 2.x line's platform constraint targets PHP 5.5–7.x. Modern Laravel (10/11/12) requires PHP 8.1+. Installing requires a fork with a relaxed constraint plus an actual PHP 8 compatibility pass — a fork we then own.
  • Transitive abandonment. It depends on other zendframework/* components that were renamed to laminas/* and, in the queue case, subsequently archived too. A mixed estate running both zendframework/* and laminas/* packages risks duplicate-class and version-conflict resolution work.
  • Semantic mismatch. Zend adapters are thin push/pop surfaces. Laravel expects job payload envelopes, attempt counts, release/delete semantics, timeout handling, and failed-job persistence. None of that maps cleanly; each adapter would need bespoke behavior.
  • Zero validation signal. 13 stars and 0 dependents means no production reference base, no community fork, no ecosystem pressure to keep a fork healthy. Any defect we hit, we fix alone.

Technical risk: high. Abandoned code with no security response, no PHP 8 guarantees, no maintainer, and a bridge layer we must design and own. The failure mode is not "it breaks on day one" — it is "it works quietly for eighteen months and then blocks a PHP upgrade, a framework upgrade, or a security audit."

Key questions for the sponsoring team:

  1. What specific capability do we believe Zend Queue provides that Laravel's native drivers (redis, database, sqs, beanstalkd, sync) do not? Name the driver and the gap.
  2. Is there an existing Zend/Laminas estate this Laravel service must interoperate with, or is this a greenfield consideration? (If greenfield, the answer is no.)
  3. What is the PHP and Laravel upgrade cadence, and who signs off on carrying a fork across two major framework upgrades?
  4. Is the opportunity: 10.63 score being read as "adopt this" or as "this is an under-served area"? Given archived status and zero dependents, the score reads as a market gap signal, not a build recommendation.
  5. What is the cost of the alternative — 2–3 days configuring a native Laravel driver — versus the cost of a bridge plus permanent fork ownership?

Integration Approach

Stack fit: not recommended for the Laravel path. For a Laravel service, the correct integration is no integration: select a native driver, configure config/queue.php, and move on. Zend Queue only becomes relevant in one narrow scenario — a polyglot or legacy Zend/Laminas estate where an existing producer or consumer already speaks a Zend Queue adapter and cannot be changed on our timeline.

Migration path (the only defensible one). Treat this as a decommissioning exercise, not an adoption:

  1. Inventory. Enumerate every producer and consumer touching the Zend queue surface: adapter type, message schema, serialization format, consumer runtime, retry behavior, and any hand-rolled dead-letter handling.
  2. Map. Assign each to a native Laravel driver. Db adapter → database driver. Redis adapter → redis driver with Laravel's Lua-scripted pop. AMQP/Beanstalkd → sqs/beanstalkd or an external broker kept out of the PHP process. Mongo/Memcached adapters have weak delivery guarantees and should be retired rather than ported.
  3. Bridge once, temporarily. If a cutover must be gradual, write a single narrow producer shim that dual-publishes to the legacy adapter and the Laravel queue. Explicitly time-box it and assign a removal ticket at creation.
  4. Cut over consumers. Run Laravel workers against the new driver, shadow-read against the legacy queue for a burn-in window, then drain and retire.

Compatibility notes. Any fork must relax the PHP constraint, be validated on the target PHP 8 minor, and be pinned to an exact version with a recorded audit trail. Prefer vendoring or a private VCS fork over a dev- constraint; floating constraints on abandoned code are an outage waiting for a composer update. Verify there is no coexistence conflict if the same application resolves laminas/* components.

Sequencing. Do not sequence this alongside a framework upgrade. Land the native queue driver first, prove it in a non-critical consumer, then expand. Queue migration touches message durability and is a poor traveling companion for other platform changes.

Operational Impact

Maintenance. Adoption means permanent ownership: PHP compatibility patching, security review on a codebase with no upstream, and a bridge layer that must track Laravel queue contract changes. Budget it as a standing line item, not a one-off integration — realistically a recurring percentage of an engineer per quarter, plus surge work at every Laravel major.

Support. None. No maintainer, no issue tracker, no CVE channel, no vendor. Internal escalation is the only path. In a regulated or audited environment, an archived dependency with zero dependents is also a finding waiting to be written up.

Scaling. Scaling characteristics are entirely adapter-dependent and generally weaker than Laravel's native equivalents: no built-in worker pool management, no visibility timeout, no atomic reserve-with-timeout, no failed-job store to query, and no metrics surface. Laravel's database and redis drivers give retries, backoff, failed_jobs, and Horizon observability out of the box; a Zend-backed bridge gives none of that unless we rebuild it.

Failure modes to plan for. Silent message loss on adapter restart (Memcached is volatile by design; Mongo and Memcached adapters offer no delivery guarantee). Poison messages with no dead-letter path, blocking a consumer indefinitely. Database adapter polling and locking contention against the application's own tables. No visibility into in-flight work, so a stuck consumer looks identical to an idle one. Bridging two abstractions adds a class of failure — dual-publish divergence — that does not exist in a single-abstraction design.

Ramp-up. Laravel engineers know dispatch(), jobs, and queue:work; they do not know Zend\Queue message objects or its adapter idiosyncrasies. Onboarding cost is a documented internal runbook plus a permanent context-switch tax on every queue-related incident. Native drivers require zero additional ramp-up.

Verdict. Given archived status, zero dependents, an outdated PHP constraint, and complete functional overlap with Laravel's queue component, the TPM recommendation is to reject adoption and treat the high opportunity score as a signal about the gap, not the package. Convert the opportunity into a short consolidation initiative: standardize on a native Laravel driver, map any legacy Zend Queue touchpoints onto it, and retire the dependency. If a legacy Zend producer genuinely cannot move on our timeline, contain it behind a time-boxed dual-publish shim with a named owner and a removal date — never as a resident dependency of the Laravel application.

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.
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
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console