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

Sulu Messenger Failed Queue Bundle Laravel Package

phpro/sulu-messenger-failed-queue-bundle

A Sulu CMS bundle that brings Symfony Messenger's failed queue into the admin panel. Browse failed messages, inspect error details, and retry or delete entries without leaving Sulu, making failed-job handling easier for editors and developers. It streamlines failed-message management for Sulu projec...

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: This is a Symfony bundle (phpro/sulu-messenger-failed-queue-bundle) that wires Symfony Messenger's failed-message transport into Sulu CMS. It sits at the intersection of three concerns: Sulu's admin UI/DI container, Symfony Messenger routing, and a persistence backend for failed messages (Doctrine transport or similar). The package is a thin integration layer, not a framework — value is almost entirely in the glue: service definitions, admin UI list/retry actions, and config conventions. For a Laravel-first shop, this is an outlier: it presumes Symfony full-stack + Sulu, so fit is only relevant if you actually run Sulu (or are evaluating a Sulu migration). For a Laravel/PHP team, the realistic leverage is conceptual — the failed-queue retry pattern — not direct reuse.

Integration feasibility: Low for a Laravel codebase. Sulu is Symfony-based; Laravel's queue model (jobs, failed_jobs table, queue:retry, Horizon) already provides roughly the same capability natively, and Laravel's failed-job handling is arguably more mature out of the box. Adopting this bundle in Laravel would mean running Symfony components inside Laravel or a sidecar Sulu app purely for queue triage — high cost, low payoff. Realistic feasible scenario: an existing Sulu app on Symfony that already uses Messenger and needs failed-queue visibility in the Sulu admin.

Technical risk: Low-to-moderate from this release alone. 1.2.0 is a single PR bumping PHP 8.4 support, contributed by a first-time contributor. Risk signals worth naming: (a) the release is a platform-compat bump, not a functional change, so nothing new to evaluate behaviorally; (b) a first-time contributor touching the CI/platform matrix is a common source of silently widened constraints — worth verifying that composer.json's php requirement was raised to permit ^8.4 rather than only the CI matrix being updated, and that the dependency constraints still pin Symfony/Sulu to compatible majors; (c) bus-factor: a small vendor bundle with one external drive-by contribution suggests a thin maintenance pool. No deprecations, no breaking changes, no CVE data available in the provided notes.

Key questions:

  • Was composer.json require.php actually widened to ^8.4, or only the CI matrix? Constraint vs. tested-matrix drift is the classic 8.4-bump trap.
  • Which Sulu and Symfony major versions are supported, and is the new PHP 8.4 support validated against the lowest supported Sulu, or only the newest?
  • Is PHP 8.3 still supported, or did 1.2.0 silently drop it? This determines whether it's a minor or a de-facto breaking bump.
  • What failed-message backend is assumed (Doctrine doctrine://default failed transport vs. something else), and does the bundle ship migrations?
  • Are there implicit deprecations surfacing under Symfony 7.x / PHP 8.4 (dynamic properties, implicit nullable params)?
  • Maintenance posture: release cadence, open-issue count, and whether the vendor treats 1.x as the supported line.

Integration Approach

Stack fit: Poor-to-nil for a Laravel/PHP shop. Laravel already owns this problem domain: failed_jobs table, queue:failed / queue:retry / queue:forget, retry_after, and Horizon for Redis-backed visibility. Introducing a Symfony/Sulu bundle to solve failed-queue triage in a Laravel app would be an architectural regression. The sensible read is: do not adopt; treat it as a reference implementation for the retry/admin-UI pattern if you build a custom failed-job console. If your organization also operates Sulu (e.g., a content platform separate from the Laravel API), the bundle is a reasonable, low-risk fit there — but scope it to that app only.

Migration path: None required — and none recommended. If you are on Sulu 1.x with this bundle at 1.1.0, the 1.2.0 upgrade is a routine composer update gated on the PHP 8.4 constraint question above; no code changes, no config changes, no migration. If you are on Laravel and were considering bridging to Sulu for queue management, the migration path is the wrong direction; instead, close the capability gap natively (Horizon, or a small admin surface over failed_jobs).

Compatibility: The one substantive compatibility fact in 1.2.0 is PHP 8.4 support. That expands the supported runtime envelope; it does not expand the framework envelope. Verify Symfony and Sulu major constraints separately — a PHP bump rarely changes Sulu compatibility, and assuming otherwise is a common review error. If your platform is PHP 8.2/8.3, 1.2.0 is functionally equivalent to 1.1.0 for you and can be deferred.

Sequencing:

  1. Confirm the composer.json PHP constraint actually permits ^8.4 (not just CI).
  2. Confirm PHP 8.3 remains in the supported matrix, or classify the release as a constraint change and plan accordingly.
  3. In a Sulu app: bump in a branch, run the failed-queue admin smoke test (list, retry, delete) under 8.4.
  4. In a Laravel app: take no action; log the package as evaluated-and-rejected with the rationale (Laravel native parity), so it isn't re-proposed.

Operational Impact

Maintenance: Near-zero in the intended (Sulu) context — composer update, no migration, no config delta. The burden is not the upgrade but the ownership: a small vendor bundle with a single external contributor on the most recent release implies you should expect to self-serve patches. Treat it as "vendored dependency you may need to fork" rather than "actively maintained platform component." For a Laravel shop, maintenance cost is zero only because you shouldn't take the dependency at all.

Support: Vendor support is the GitHub issue tracker and the maintainer's release cadence. There's no commercial backing evident. Escalation path for a broken retry UI or transport bug is a PR upstream. Budget for that in any Sulu context where failed-message triage is operationally important (i.e., where a stuck queue pages someone).

Scaling: This is an admin/ops surface, not a throughput component — it lists and retries failed messages. Scaling concerns are the failed-transport storage (Doctrine table growth, index/retention policy) rather than the bundle. Unbounded failed transport tables are the realistic scaling failure: large tables make the admin listing slow and retries expensive. Confirm retention/pruning exists; the bundle itself is unlikely to provide it. Under Laravel, Horizon plus a pruned failed_jobs is the equivalent-and-better answer.

Failure modes:

  • Constraint drift: PHP 8.4 permitted in CI but not in composer.json → resolvable-but-untested, or tested-but-unresolvable. Most likely issue from this release.
  • Silent floor raise: if 8.4 support came with dropping 8.3 without a major bump, downstream installs break on composer update with an opaque constraint error.
  • Failed-transport saturation: unpruned failed rows degrade the admin UI and retry latency; recovery requires manual DB cleanup.
  • Retry storm / poison message: retrying a batch of deterministically failing jobs re-fails immediately; the bundle won't protect you, and ops runbooks must.
  • Abandonment: no release for an extended period leaves you exposed on the next PHP/Symfony jump; mitigated by the small surface area, which makes forking tractable.

Ramp-up: For a Laravel engineer, near-zero transferable ramp because the Laravel mental model (failed_jobs, queue:retry, Horizon) maps one-to-one and is better supported — the main learning is "don't." For a Sulu/Symfony engineer, a few hours: install, point Messenger's failed transport at the configured backend, grant admin permission for the retry UI, and read the config tree. The 1.2.0 change adds no new concepts to learn.

Recommendation: Update the assessment to record 1.2.0 as a compatibility-only release (PHP 8.4), low risk, no functional delta, no deprecations, no breaking changes evident from the notes. Do not adopt in a Laravel context — Laravel's native failed-job handling is a superset for this use case. In a Sulu context, adopt/upgrade with one verification step (confirm the PHP constraint was actually widened and 8.3 not silently dropped). Flag the single-contributor signal as a standing maintenance caveat rather than a blocker.

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