jasuwienas/message
A small Laravel/PHP package for handling application messages, offering a simple, conventions-friendly API to define and manage message content. It makes adding lightweight messaging support to your project quick and straightforward.
Architecture fit — poor, with a framework mismatch to resolve first. Despite being scoped for a Laravel/PHP review, the package describes itself as "Integrating message queues into Symfony3 project." That means its public surface is almost certainly a Symfony bundle: a Bundle subclass, a DI extension, a compiler pass, and YAML/XML service definitions. Laravel's queue layer is a different contract entirely — Illuminate\Contracts\Queue\Queue, connector registration through QueueManager, and job payloads serialized by Illuminate\Queue\Jobs\Job. There is no shared abstraction to bridge, so "adopting" this package in a Laravel codebase means porting it, not installing it. Net: it is a reference implementation at best, not a dependency.
Integration feasibility — low. The last release is 2018-11-26, which aligns with Symfony 3.x's end of life. A package published then will carry PHP ~7.0/7.1 constraints and Symfony ^3.0 requirements. Current Laravel (10/11) requires PHP 8.1/8.2 and Symfony 6/7 components, so Composer will either hard-fail or force --ignore-platform-reqs — a red flag, not a workaround. Any integration requires forking and downgrading the constraint set ourselves.
Technical risk — high and concentrated.
Key questions to answer before spending more time:
Verdict: treat as a design reference, not an adoption candidate.
Stack fit — none out of the box. Laravel ships a mature queue subsystem: multiple connectors, ShouldQueue jobs, middleware, batching, chaining, failed-job tables, and Horizon for Redis with autoscaling and dashboards. Even on the Symfony side, this package's premise is obsolete: Symfony Messenger (4.1+, mature in 5/6/7) is the first-party answer and supersedes a Symfony 3 bundle. Either way, the package sits behind a first-party alternative.
Migration path — two viable routes, both short.
packages/ directory, pin the fork explicitly, upgrade PHP constraints, and re-expose the logic as a Laravel queue connector implementing Illuminate\Contracts\Queue\Queue, registered via a service provider. Budget for rewriting the Symfony DI wiring entirely — that layer does not survive the port.Compatibility — enumerate explicitly before committing. Audit the composer.json for PHP and Symfony constraints, PSR compliance (PSR-3 logging, PSR-11 container, PSR-6/16 cache), and whether it implements framework-specific or generic interfaces. Framework-specific interfaces mean a full port; PSR-only interfaces mean a thin adapter. This single check determines the estimate, so it is the first task.
Sequencing.
composer.json yet.Maintenance — we own it permanently. No active maintainer, no release cadence since 2018, and no dependents generating upstream pressure. Every PHP or framework upgrade becomes our work, and the fork must be tracked as an internal package with an assigned owner rather than sitting in vendor/ as an unexamined dependency. This is the dominant lifecycle cost and should be priced into the decision.
Support — effectively nonexistent. No vendor, no community, no Stack Overflow corpus, zero stars. Internal documentation, runbooks, and a named on-call owner are prerequisites, not follow-ups. Contrast this with Horizon, where dashboards, metrics, and community knowledge come free.
Scaling — unknown and unverified. The metadata tells us nothing about worker concurrency, prefetch, connection pooling, or backpressure. Those properties must be established by reading the source and load-testing, not assumed. A 2018-era connector may also predate current broker client libraries, which can leave performance and reconnect behavior on the table.
Failure modes to instrument for:
failed_jobs table and Horizon's retry UI are exactly the gap-fillers here.--ignore-platform-reqs in CI hiding a real incompatibility.Ramp-up — low knowledge cost, high certainty cost. There is no external expertise to hire for and no documentation to read, so onboarding reduces to reading the source, which is fast. The real cost is that every operational assumption must be validated empirically by our own team. Budget a short spike to confirm behavior rather than a training period.
Bottom line for planning: the package is a low-adoption, dormant, Symfony-3-era component with no Laravel fit. Recommend a time-boxed source review to extract any reusable broker logic, then reimplement against Laravel's native queue contract or adopt Horizon outright. Carry it as a dependency only if that review surfaces something genuinely non-trivial — and even then, plan for a permanent, owned fork.
How can I help you explore Laravel packages today?