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

Laravel Sqs Queue Json Reader Laravel Package

palpalani/laravel-sqs-queue-json-reader

A Laravel package for reading JSON messages from AWS SQS queues. It helps decode and handle SQS queue payloads in Laravel applications, making it easier to consume JSON-based messages from Amazon Simple Queue Service.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Release delta (0.6.0): one behavioral fix (#56 — check whether Laravel already deleted the SQS message before the package attempts deletion), one framework-compatibility addition (Laravel 13.x support, #54), and eleven CI/dependency bumps (GitHub Actions majors, ramsey/composer-install 3→4, Pint action). There are no documented API removals or deprecations, but 0.x versioning means minor releases are not contractually non-breaking — the changelog is the only guarantee.

Architecture fit. This is a narrow, single-purpose adapter: it lets a Laravel queue worker consume JSON messages from an SQS queue whose bodies were not produced by Laravel's own job serializer. That makes it a boundary/anti-corruption layer for polyglot or legacy producers (other services, Lambda, third-party integrations) writing into SQS. It is deliberately not a general messaging abstraction — no schema registry, no routing DSL, no multi-transport support. If your need is exactly "consume foreign-produced JSON from SQS inside Laravel," the fit is tight and the blast radius is small. If your need is broader event infrastructure, this is one component, not a platform, and you should not let it accrete responsibilities.

Integration feasibility. Low surface area, which is the main argument in favor. Expect composer install, configuration publication, definition of a queue connection plus a consumer/job mapping from raw payload to application work, and worker invocation. Two things should be proven in a short spike rather than assumed: (a) the payload-to-job mapping mechanism and how malformed or schema-drifted messages are surfaced; (b) whether the package composes cleanly with the native sqs driver in the same application, so native Laravel queues and foreign-message queues can coexist during transition.

Technical risk.

  • Delete-path behavior change (#56) is the item that matters. Message acknowledgement is the highest-consequence code in any consumer. The fix removes a class of failures (deleting a message Laravel has already deleted — stale receipt handle / InvalidParameterValue-style errors) but it changes deletion semantics, and the reviewer must confirm whether a suppressed or failed delete results in redelivery (at-least-once duplicate processing — usually acceptable) versus silent loss (not acceptable). Test this explicitly rather than inferring from the PR title.
  • Pre-1.0 stability. No compatibility promise beyond the changelog; pin exact versions and read every diff that touches the queue connection, job class, or delete path.
  • Maintainer concentration. Single primary maintainer with a small contributor base. The two first-time contributors in this release are a positive signal, not a mitigation.
  • CI bumps are noise, not risk. actions/checkout 4→6 and upload-artifact 5→7 skipped majors within this window; ramsey/composer-install 3→4 is build-only. None affect runtime, but they indicate the release is largely automated maintenance rather than a feature milestone.
  • Laravel 13 support is unverified in depth. "Compatibility" from an automated tooling PR means the test matrix passes, not that deprecations and internal API changes are fully exercised in your usage shape.

Key questions.

  1. What is the exact PHP and Laravel support matrix in composer.json for 0.6.0, and does it drop any version we currently run?
  2. On a failed or skipped delete, does the message return to the queue after the visibility timeout, or is it abandoned? What is the documented at-least-once contract?
  3. Does the package participate in Laravel's failed-job pipeline (failed_jobs, retry/backoff, queue:retry), or does it own its own failure handling?
  4. Are job middleware, batching (Bus::batch), and rate limiting compatible, or does the non-native message shape bypass them?
  5. How does it handle malformed JSON, missing required keys, or schema drift — exception, silent skip, or dead-letter?
  6. SQS FIFO support and deduplication semantics — in scope or explicitly out?
  7. How is the package exercised locally and in CI (LocalStack/ElasticMQ), and does the 0.6.0 test suite cover the delete-guard path?
  8. Long-running jobs: what guidance exists when job duration approaches or exceeds the queue's visibility timeout?

Integration Approach

Stack fit. Appropriate for a Laravel service that already runs queue workers and needs to drain an SQS queue populated by non-Laravel producers. It assumes you are comfortable operating SQS directly (IAM permissions for ReceiveMessage/DeleteMessage/GetQueueAttributes, DLQ and redrive policy, visibility timeout tuning). It is a poor fit if the team has no SQS operational experience, or if the same payloads could instead be normalized by the producer into Laravel's native job envelope — that would remove the dependency entirely.

Migration path. Greenfield: add a new queue connection alongside existing ones; existing native queues are untouched, so adoption is additive and reversible by config. Brownfield: run dual-stack — point only the foreign-producer queues at this connector, leave native Laravel queues on the stock sqs driver, and migrate one queue at a time. Avoid rewriting native queues to route through this package "for consistency"; that trades a supported first-party path for a 0.x dependency.

Compatibility. Laravel 13 support (#54) is the headline and the reason this release is mandatory for teams tracking the framework upgrade — without it, 0.6.0 becomes a blocker on the Laravel 13 migration. Teams pinned to older majors should treat 0.6.0 as optional-but-recommended for the delete guard. Confirm the PHP constraint and any transitive dependency changes before bumping.

Sequencing.

  1. Pin the current version in composer.json; capture a baseline of queue behavior (throughput, duplicates, failures) for one representative queue.
  2. Spike against LocalStack or a sandbox SQS queue: mapping, malformed payload, deletion after a forced visibility-timeout expiry, and duplicate delivery.
  3. Bump to 0.6.0 on a branch; re-run the delete-path scenarios specifically, including the "already deleted" case the PR targets.
  4. Validate on the Laravel version you intend to target; if Laravel 13 is the goal, upgrade framework and package in a single reviewable change since 0.6.0 is the enabling dependency.
  5. Roll out queue-by-queue behind config, with the previous version retained as the rollback point.

Operational Impact

Maintenance. Low code footprint, but it sits in the delivery critical path, so it inherits on-call attention. Dependency hygiene looks automated (Dependabot plus auto-commit action), which is reassuring for security patching but also means releases are frequent and mostly mechanical — pin exact versions and batch upgrades deliberately rather than tracking ^0.6. Expect roughly one framework-alignment release per Laravel major; budget for that review each cycle.

Support. No vendor, no SLA. Upstream is GitHub issues plus community PRs. The 0.6.0 mix — a community bugfix and an automated compatibility PR — suggests a maintained but not staffed project. Operationally this means internal ownership: someone on the team must be able to read the package source and reason about the delete path. That is a realistic ask given the size, but assign it explicitly.

Scaling. Throughput scales the way SQS does — add workers, tune batch size and long polling. The package itself is not the bottleneck. The constraints are configuration-driven: visibility timeout must exceed worst-case job duration, DLQ redrive policy must exist before go-live, and worker concurrency must respect any downstream rate limits.

Failure modes to instrument.

  • Duplicate processing from redelivery after visibility-timeout expiry or a suppressed delete (#56 changes this surface — measure it).
  • Stale receipt handle on delete for jobs that outlive the visibility timeout.
  • Poison messages from schema drift or malformed JSON, with no DLQ = unbounded retry loop and worker starvation.
  • Silent drops if decode failures are swallowed; ensure any skip path emits a metric and a log line.
  • Partial-batch failures if messages are read in batches, causing a whole batch to redeliver.

Alert on DLQ depth, oldest-message age, delete-failure rate, and decode-error rate from day one.

Ramp-up. A Laravel developer can be productive in half a day; the integration code is small. The real ramp-up is SQS literacy — visibility timeout, receipt handles, at-least-once delivery, DLQ redrive — which is where incidents actually originate. Plan a short internal write-up covering the deletion contract and the local-stack test recipe, and treat that document as a prerequisite for production cutover rather than an afterthought.

Recommendation. Adopt 0.6.0 for its intended narrow purpose, gated on a delete-path spike. The Laravel 13 support makes it the required version if a framework upgrade is on the roadmap; the delete guard is a genuine reliability improvement worth taking either way. Keep scope tight, pin the version, and do not let it replace the native SQS driver for queues Laravel itself produces.

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.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle