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

Awspushbundle Laravel Package

mrdanshur/awspushbundle

A Symfony bundle that integrates AWS Simple Notification Service (SNS) for sending mobile push notifications to iOS and Android devices. It wraps SNS client setup and push delivery in Symfony services and configuration, letting you dispatch device notifications from your application.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — high friction, unchanged. The package remains a Symfony Bundle, not a Laravel package. Laravel does not consume Symfony Bundles: there is no Bundle registration, no Extension::load() invocation, and no Configuration TreeBuilder processing in Laravel's container. The bundle's value (service definitions, config tree, autowired SNS client) is expressed in idioms Laravel will silently ignore. In practice, "leverage" means extracting the SNS wrapper/payload-builder classes and re-registering them via a Laravel service provider — the bundle scaffolding itself is dead weight in a Laravel app.

Integration feasibility — conditional, medium effort, unchanged by 1.0.1. The genuinely reusable asset is the cross-platform message composition for SNS mobile push (APNS / GCM / ADM payload envelopes) and endpoint-ARN handling. That logic is typically a thin SnsClient::publish() wrapper, portable in 1–2 days of spike work. Feasibility hinges on whether those classes are container-coupled (constructor-injected Symfony services, ContainerAwareInterface, config-tree-driven arguments) or plain objects. Release 1.0.1 does not touch the bundle scaffolding, so the extraction effort estimate stands.

Technical risk — still unacceptable as a direct dependency for a production push path.

  • New in 1.0.1: the "Fix GCM issue" patch. This is a single-line-scope patch release whose only stated change is a GCM fix. It confirms rather than resolves the flagged concern: the codebase is still on Google's retired GCM transport and is being patched, not migrated to FCM v1 (OAuth2 / HTTP v1). Google shut down the legacy GCM/FCM legacy server-key APIs; a GCM payload path is a correctness dead-end for Android regardless of how many point fixes land.
  • Conversely, the release is a minor positive signal on liveness: the maintainer is reachable and shipped something after the 2023-03-30 release. One patch in roughly two years still reads as effectively dormant — it does not create a support relationship, a security-review process, or downstream validation.
  • 0 stars, 0 dependents, score 0 → zero external validation; nobody has run this in anger, and 1.0.1 adds no dependents.
  • Single maintainer; no dependents means no downstream bug discovery and no compatibility pressure on aws/aws-sdk-php major bumps.
  • Bundle will pull symfony/framework-bundle / dependency-injection into a Laravel app, colliding with Laravel's own pinned symfony/* versions.
  • MIT clears legal, but there is no visible security review or CVE triage.
  • Semver read: 1.0.1 is patch-level — no breaking changes, no new features, no deprecations. Nothing here changes an integration plan; it only changes what we know about the code's transport vintage.

Key questions for the spike

  1. Are the payload builders container-coupled, or can they be instantiated standalone?
  2. Which aws/aws-sdk-php constraint does it pin, and does it resolve against our current SDK?
  3. Does it implement SNS delivery feedback (endpoint disabled / token invalidation) or is it fire-and-forget?
  4. Does it target FCM v1 (OAuth2) or the retired GCM server key? Largely answered: GCM. 1.0.1 patches a GCM issue rather than migrating to FCM v1, so the Android path is presumed non-viable as shipped. Remaining question is narrower: does any FCM v1 code exist at all, or is Android strictly out of scope?
  5. Is SNS mobile push even the right transport for us, versus direct APNs/FCM or a managed provider?
  6. New: what exactly did 1.0.1 change, and does the diff touch only the Android/GCM envelope or also shared payload code we'd vendor? (Determines whether the "reference implementation" value survives.)

Integration Approach

Stack fit. Targets Laravel 10/11 on PHP 8.1+. The bundle is not installable as-is; two viable paths:

Path Effort Outcome
A — Vendor the core 2–4 days Copy the SNS payload/wrapper classes into app/Support/Push, wrap in a PushSender interface, register in AppServiceProvider. Keeps the cross-platform payload logic, drops the bundle. Now scoped: vendor APNS/ADM envelopes only; treat the GCM branch as dead code per 1.0.1.
B — Skip the package 1–2 days aws/aws-sdk-php SnsClient directly behind a Laravel NotificationChannel. Slightly more code, zero dormant-dependency risk.

Recommendation: spike Path A, default to Path B — unchanged, and marginally strengthened. 1.0.1 removes the last argument for keeping the Android path, so Path A's value narrows to APNS/ADM payload variance (e.g. APNs aps sizing, mutable-content, ADM quirks), which is the only thing that would justify vendoring.

Migration path.

  1. Audit the source tree (bundle Extension, Configuration, Resources/config/services.*, actual push classes) including the 1.0.1 diff to see whether the GCM fix touched shared payload code.
  2. Stand up a PoC publishing to a single platform (APNS sandbox) via a manually constructed SnsClient.
  3. Define App\Contracts\PushSender with send(DeviceToken $token, PushMessage $msg): Result.
  4. Implement SnsPushSender (vendored or SDK-native) behind that interface; Android routes to FCM v1 or a managed provider, not the vendored GCM path.
  5. Feature-flag in production; keep the interface as the seam to swap in FCM/APNs direct later.

Compatibility. Verify composer why-not against our symfony/* and aws/aws-sdk-php pins before committing. Expect to add replace/exclude for symfony/framework-bundle. Confirm PHP 8.2/8.3 support — a 2023-03 baseline with a 1.0.1 patch is unlikely to have added 8.3 deprecation fixes; re-run the compatibility check against 1.0.1 specifically rather than assuming.

Sequencing. Audit (incl. 1.0.1 diff) → PoC (one platform) → abstraction + tests → build-vs-adopt decision → production rollout. Do not sequence this behind a release; treat the package as a reference implementation to mine, not a dependency to adopt. 1.0.1 does not change sequencing.

Operational Impact

Maintenance. Adoption means we become the de facto maintainer of a fork. All bug fixes, SDK bumps, and security patches are ours. 1.0.1 is a data point that upstream can ship, but one patch release in ~24 months does not constitute a maintenance cadence. Budget ~1–2 days/quarter of stewardship, more on any aws-sdk-php major — and note that if we vendor, the GCM-era code we inherit is code we will be asked to fix, not upstream.

Support. No community, no issue-tracker track record, no SLA, one maintainer. Escalation path is "read the source." The 1.0.1 release raises confidence only from "no commits" to "occasional patches." Acceptable only because the surface area is small.

Scaling. Actual delivery scale is SNS's problem, not ours — SNS absorbs volume and fan-out. Our concerns are cost model (per-notification pricing at volume), the 256 KB payload cap, and per-platform payload differences. The package adds no scaling mechanism of its own; 1.0.1 adds no batching or rate-limit handling.

Failure modes to design for now:

  • Stale/disabled device tokens — SNS disables endpoints silently; without feedback consumption you accumulate dead endpoints and burn spend. Must be built regardless of package.
  • Android delivery via GCM — now the headline risk. Even with the 1.0.1 "fix," the transport is retired server-side; expect hard failures or silent drops on Android. Route Android to FCM v1 outside this package.
  • APNs sandbox vs production endpoint confusion — a classic and silent failure.
  • Credential rotation / IAM scope — push path fails closed on SNS auth errors; needs alerting.
  • Idempotency and retries — no evidence of either; duplicate pushes on retry are on us.
  • Silent drops — malformed payloads rejected by SNS surface only in the API response; must log and alert on MessageId absence.
  • Regression risk on patch upgrades — with no test suite or dependents visible, a 1.0.1-style fix is unverifiable by anyone but us; pin exact versions if we vendor.

Ramp-up. Low for a team already fluent in SNS and Laravel notifications (~half a day). Medium otherwise: engineers must learn SNS mobile-push semantics (endpoint ARNs, platform applications, feedback) plus the internal wrapper — roughly 2–3 days including PoC. Add a half-day to establish internally that the Android/GCM path is out of scope, since 1.0.1 will otherwise read to a reviewer as "GCM is fixed."

Bottom line for the roadmap: 1.0.1 does not change the verdict. mrdanshur/awspushbundle remains reference material, not a dependency — the "Fix GCM issue" patch confirms the Android path is still GCM-era and therefore non-viable, narrowing the package's value to APNS/ADM payload reference. Worth 1–2 days of mining, not 2–4; the bundle itself still carries abandoned-dependency risk on a customer-facing critical path with no offsetting benefit.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource