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

Aws Sns Laravel Package

lab123/aws-sns

A Laravel wrapper for Amazon SNS that simplifies publishing messages to topics and integrating AWS notifications into PHP applications. Configure credentials once and send SNS notifications through a clean, familiar API.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged in shape: the package remains a Laravel notification channel driver wrapping aws/aws-sdk-php, offering direct SMS (Publish to PhoneNumber) and topic fan-out (TargetArn). v2.0.0 does not add product surface — it is a compatibility and dependency-modernization release. That is the right call for a package this thin, but it confirms the original read: the durable value is roughly 50–150 lines of glue, and the strategic question is whether to own that glue or consume it.

Integration feasibility. Now materially better on the framework axis, worse on the governance axis.

  • Positive: PHP ^8.1, Laravel 10–13, Lumen 10/11, and AWS SDK v3 are explicitly declared. That resolves the single highest-probability blocker from the prior assessment (unverified framework drift) and confirms the original key question #2 — the package is on SDK v3, so it shares the standard aws/aws-sdk-php ^3.x constraint with Vapor, Flysystem S3, and SES mailers rather than pinning a legacy v2.
  • Positive: A documented ^1.0 escape hatch for Laravel/Lumen 5 apps shows the maintainer is at least thinking about upgrade paths rather than silently breaking the long tail.
  • Negative — the headline risk is now a security-advisory carve-out. v2.0.0 instructs Laravel/Lumen 10 and 11 adopters to ignore advisory PKSA-zwc5-qtrz-zm1n because there is no upstream fix. This is a per-project composer audit / CI suppression. It is defensible (the advisory is in the framework, not this package, and the package is merely documenting the workaround), but it means adoption now requires a documented risk acceptance and a compensating control, not just a composer require. Treat this as a governance work item, not a README footnote.
  • Unverified: Laravel 13 appears in the support matrix. If Laravel 13 is not yet GA at review time, that claim is either forward-looking or untested — confirm it is backed by a CI matrix entry and not aspirational. The previously flagged future-dated release metadata (2026-10-16) is now at least consistent with a Laravel 13 claim, which reduces the "packaging anomaly" suspicion but does not eliminate it. Verify against tag history and commit log before treating it as an active-maintenance signal.
  • Still absent (unchanged): retry/backoff, idempotency, delivery-status capture, per-country SMS routing, opt-out handling, and MessageAttributes/SenderID/SMSType support are not addressed by the release notes. A breaking major that ships zero feature or reliability work is a strong signal about the maintainer's roadmap: expect compatibility upkeep only.

Technical risk.

  • Breaking-change blast radius is narrow but sharp. Dropping PHP <8.1 and framework <10 strands Laravel 5–9 adopters on ^1.0, which presumably carries the older SDK constraint. Anyone on Laravel 9 with shared AWS dependencies should not expect a supported path forward from this maintainer.
  • Adoption signal is still weak. 31 stars, 0 dependents, single-maintainer org, opportunity score 0.43. A v2.0.0 with no new adopters does not change the niche/low-differentiation conclusion.
  • Bus factor unchanged. Still one maintainer; the release demonstrates engagement but not redundancy.
  • Advisory suppression becomes permanent debt. Ignoring PKSA-zwc5-qtrz-zm1n has no expiry date in the release notes. Whoever owns it must track whether Laravel ships a fix or whether the ignore must escalate to a real mitigation.

Key questions.

  1. Is the Laravel 10/11/12/13 and Lumen 10/11 matrix backed by an actual CI job per version, or declared in composer.json only? (Partially answered by release notes — demand the CI evidence.)
  2. Is Laravel 13 GA at review time, and is it tested?
  3. What exactly does PKSA-zwc5-qtrz-zm1n affect, and is the ignore documented with a compensating control (WAF rule, input validation, feature disablement)? Is there an upstream Laravel fix in flight?
  4. Does the ^1.0 branch still receive security patches, or is it frozen? This determines whether Laravel 9 shops have any supported path.
  5. Does the v2 message object now support topic ARN, MessageAttributes, SenderID, SMSType, and PhoneNumber vs TargetArn selection — or is v2.0.0 strictly a dependency bump?
  6. Does it integrate with ShouldQueue and honor Laravel's queue retry semantics?
  7. Is the repo (lab123it) and Packagist name (lab123/aws-sns) consistent, and is v2.0.0 actually tagged and published?
  8. Commit history and issue triage over the last 12 months.

Integration Approach

Stack fit. Sharper than before. The package now only fits Laravel 10+ / PHP 8.1+ estates — which is most actively maintained applications as of this review. It remains a good fit for AWS-native Laravel services with existing SNS/SQS/SES IAM boundaries, and a poor fit for polyglot or non-AWS estates or teams with an established Twilio/Nexmo abstraction.

Migration path. Two entries remain, but the calculus has shifted:

  • Greenfield (Laravel 10+): direct adoption is now the lowest-risk it has been — declared support, SDK v3, and a maintainer who shipped a major rather than letting the package rot.
  • Brownfield on Laravel 9 or below: the ^1.0 branch is an unsupported-looking backwater. Do not adopt; either upgrade the app first or write the ~100-line first-party channel. Owning it is now clearly cheaper than an unsupported dependency.
  • Any path: still wrap behind an internal SmsSender interface. Do not let vendor message classes leak into domain code. The advisory-ignore requirement makes swappability a governance necessity, not just hygiene.

Compatibility. The SDK v3 alignment is the good news — it removes the classic collision with Vapor/Flysystem/SES. The remaining compatibility actions:

  • Run composer why aws/aws-sdk-php and confirm no conflicting constraint.
  • Add the PKSA-zwc5-qtrz-zm1n ignore to composer.json with a comment and a linked ticket, and confirm it does not mask other advisories in the same package or a transitive chain.
  • Confirm region coverage and that the account is out of the SNS SMS sandbox, with origination numbers / sender IDs approved for every destination country.
  • Re-verify the Lumen 10/11 manual provider registration steps against the current Lumen release — the release claims Lumen support and that has historically been the weakest documented path.

Sequencing.

  1. Governance first: security review of the advisory, written risk acceptance, and a compensating control before any code lands. This is new for v2.0.0 and should gate the rest.
  2. Dependency audit: shared AWS SDK constraint, composer audit output with and without the ignore.
  3. Sandbox proof of concept: one notification class, one verified destination, end-to-end delivery.
  4. Topic path: ARN publishing and subscriber fan-out (SQS/Lambda/HTTP), including a zero-subscriber test.
  5. Queue integration behind ShouldQueue; verify retry and failure handling.
  6. Observability: SNS delivery-status logging to CloudWatch, alarm on failures.
  7. Country-by-country rollout gated on sender ID / origination approval and per-country rate limits.

Operational Impact

Maintenance. Bus factor still one, but v2.0.0 is evidence the maintainer does track framework and SDK releases — upgrade this from "unknown" to "responsive on compatibility, silent on features." Fork-and-vendor internally remains the right plan if this becomes load-bearing; a package this small is cheap to own. Pin the exact version and review diffs before upgrades — as this release shows, a major bump can move both the PHP floor and the SDK major at once.

Support. MIT, community-only, no SLA. Additionally, adopters now absorb support burden for the advisory workaround, including tracking whether upstream Laravel ships a fix and when the ignore can be removed. Name an internal owner for that specific item.

Scaling. Unchanged. SNS topics scale; SMS throughput is governed by per-second spend limits and per-country rules. Cost is per message with significant country variance. Publish success ≠ delivery; a topic with zero subscribers returns success. Route sends through Laravel queues to absorb bursts and make retries explicit. Nothing in v2.0.0 changes any of this.

Failure modes to instrument.

  • Sandbox or unapproved-origination-number failures discovered in production.
  • Throttling / InvalidParameter (non-E.164 numbers) surfacing only as generic SDK exceptions.
  • Silent success on topics with no subscribers or dead subscriptions.
  • Credential expiry or region misconfiguration producing hard failures at send time.
  • No delivery receipts unless CloudWatch delivery-status logging is enabled externally — still a separate workstream.
  • New: a suppressed advisory (PKSA-zwc5-qtrz-zm1n) masking a later, unrelated advisory in the same audit path because the ignore rule is too broad. Scope the ignore narrowly and re-review it every dependency cycle.
  • Opt-out and compliance handling (US/CA carrier rules) still outside the package's scope.

Ramp-up. Still low for the code — a Laravel developer is productive in under a day, and v2.0.0's explicit version matrix makes the "will this even install" question cheap to answer. The real ramp-up cost remains operational SNS knowledge (sandbox exit, sender IDs, origination numbers, spend limits, delivery-status logging), plus a new small burden: advisory-tracking discipline for the framework ignore. Total effort estimate is unchanged — the integration is trivial, the AWS SMS onboarding is not.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager