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

Product Decisions This Supports

  • Consuming SQS queues you don't own. The package lets a Laravel queue worker read raw JSON payloads produced by non-Laravel systems (Lambda, SNS→SQS fan-out, EventBridge, S3 event notifications, Go/Node/Python services) without asking those teams to change their message format. This is the core decision it unlocks: can we integrate with an existing AWS event stream without a dedicated consumer service?
  • Build vs. buy for ingestion plumbing. The alternative is a standalone consumer microservice (ECS Lambda/Fargate worker + its own deploy pipeline, logging, retry logic, dead-letter handling). Adopting this package turns that into a few lines of Laravel queue configuration, so the decision becomes "spend two weeks building a consumer" vs. "spend two days wiring a driver."
  • Phased migration off legacy/queue-based systems. Useful when moving an integration from a legacy consumer onto the Laravel monolith, or when Laravel needs to read from a queue that predates the Laravel app itself — payload contract stays frozen on the producer side.
  • Roadmap: event-driven features without new infrastructure. Teams already running Laravel queue workers (Horizon, supervisor) can add AWS-sourced events (billing webhooks, media processing completions, third-party async callbacks) as ordinary Jobs, reusing existing retry/backoff/failed-job tooling. This makes "we can't do event-driven, we'd need new infra" a much weaker argument in planning.
  • Platform-standardization decisions. If the org standardizes on SQS as the inter-service bus, this package determines whether Laravel services are first-class citizens on that bus or need a translation layer — a meaningful input to an architecture standard.
  • Constraining scope on vendor/partner integrations. Partners who can only push to SQS (rather than call an HTTP webhook) become integrable without a bespoke adapter per partner.

When to Consider This Package

Adopt when:

  • One or more producers on the queue are not Laravel/PHP, and their JSON schema is stable and documented. This is the package's reason to exist.
  • You already run Laravel queue workers (or Horizon) in the target environment and have IAM access to the queue.
  • You want SQS messages to become normal Laravel Jobs — with the standard tries, backoff, failed() and dead-letter behavior — rather than hand-rolling a polling command.
  • The payload is small and job-shaped (an ID plus metadata, not a multi-megabyte document; SQS caps at 256 KB regardless).
  • You're on a currently supported Laravel version — 0.6.0 explicitly adds Laravel 13.x compatibility, and the release also tightened message deletion behavior (PR #56), which matters under at-least-once delivery where a message may already have been removed.

Look elsewhere / push back when:

  • All producers are Laravel. The first-party SQS queue driver already handles serialized Laravel jobs; adding this package is unnecessary surface area.
  • You need first-class FIFO semantics, deduplication IDs, or message-group ordering guarantees. Verify explicitly against the source before committing; don't assume parity with the native driver.
  • You need strong delivery/observability guarantees out of the box. There is no evidence in this release of dashboards, metrics, or tracing — you'll be leaning on Horizon, CloudWatch, and your own logging.
  • Payload schema is unstable or producer-owned without a contract. A raw-JSON reader is only as good as the schema discipline behind it; versioned envelopes and validation belong in your Job, not the package.
  • Vendor-risk tolerance is low. The package is pre-1.0 (0.6.0), and this release is overwhelmingly Dependabot CI bumps plus one correctness fix and one compatibility bump — healthy maintenance, but a single-maintainer project. Pin the version in composer.json, wrap it behind your own job base class or adapter, and keep an exit path.
  • You need the queue to be your system of record. It isn't; treat messages as ephemeral triggers.

How to Pitch It (Stakeholders)

To executives (30 seconds): "Several of our systems already publish events to AWS SQS — Lambda jobs, partner integrations, S3 notifications. Today, having our Laravel app react to those events means building and operating a separate consumer service: new deployment pipeline, new on-call surface, new code to maintain. This package lets our existing Laravel queue workers read those messages directly. It's a small, focused dependency — not a platform commitment — and the 0.6.0 release is a maintenance release: dependency hygiene, Laravel 13 support, and a fix that prevents errors when a message has already been removed from the queue. Effort is measured in days, not sprints; the main risk is that it's a pre-1.0 open-source package, which we mitigate by pinning the version and keeping the integration behind a thin internal adapter."

To engineering: "It's a queue driver/reader, not a framework. SQS JSON becomes Laravel Jobs, so tries, backoff, failed(), Horizon, and your existing worker supervision all keep working — no new runtime, no new deploy target. 0.6.0 adds Laravel 13.x compatibility and guards against deleting a message Laravel has already deleted, which is the double-delete noise you'd otherwise see under at-least-once delivery. Constraints to design around: payloads are raw and unvalidated, so validate and version-envelope inside the Job; confirm FIFO/message-group behavior against the source before you rely on it; and put the package behind one internal base Job class so swapping it out later is a contained change. Two integration tests we should write first: a happy-path message round-trip, and a redelivery/duplicate-delete case."

Bottom line for the review: 0.6.0 is a low-risk, non-breaking release — CI dependency bumps, explicit Laravel 13.x support, and one meaningful correctness fix around message deletion. It doesn't change the adoption calculus; it modestly strengthens it by keeping the package current with the framework version we'll be targeting.

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.
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
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin