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 Sse Laravel Package

sinemacula/laravel-sse

A Laravel package for Server-Sent Events (SSE) that makes it easy to stream real-time updates from your app to browser clients. Simplify live notifications, progress updates, and event broadcasting with minimal setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Basis: this assessment is derived from the v1.1.0 release metadata and general Laravel/SSE architecture; source-level review of the package is still required to confirm the points below.

Architecture fit. A thin SSE transport layer is a natural complement to Laravel's existing event/listener and broadcasting model: it adds a one-way server-push channel for progress feeds, notifications, and job-status streaming without introducing new infrastructure. It sits inside the normal HTTP kernel and middleware stack, so it is conceptually a small addition rather than a new architectural tier. Fit is strongest where WebSockets would be over-engineering.

Integration feasibility. Composer install, package auto-discovery, and route/controller registration are low-friction. The real integration cost is not the package — it is the edge: reverse-proxy buffering, read timeouts, CDN behaviour, and PHP worker lifecycle. Budget accordingly.

Technical risk. Moderate-to-high, concentrated in runtime behaviour rather than API surface. SSE holds a PHP process open for the duration of each stream, so under php-fpm the concurrency ceiling is set by pool size, not by the package. Additional known hazards: output-buffering interference, proxy read timeouts, missing client-disconnect detection causing stream leakage, and no built-in reconnect semantics. v1.1.0 is a feature-only minor with no breaking changes or deprecations flagged — but "support Laravel 13" delivered in a minor can still mean the illuminate/* constraint was rewritten, potentially altering what resolves for us.

Key questions.

  • Did v1.1.0 widen or narrow framework constraints, and which Laravel majors (10/11/12/13) remain supported?
  • What is the PHP version floor, and does it match our runtime image?
  • Which runtime is assumed — php-fpm, Octane, or a dedicated long-running worker? Octane materially changes the concurrency math.
  • Is there a driver abstraction (Redis pub/sub) or does the stream read in-process state? In-process state breaks multi-node fan-out.
  • Is client disconnect detected (connection_aborted() polling), or do streams linger until a timeout?
  • What authorization and per-connection rate limiting apply to stream endpoints?

Integration Approach

Stack fit. Native fit for a standard Laravel application: service provider, published config, event hooks, no new datastore for single-node use. Multi-node requires a shared pub/sub layer, which we already operate for queues and cache.

Migration path. Greenfield adoption; no data migration. Validate constraint resolution against our lockfile first, then build a single pilot endpoint (e.g. background export progress), then test through the real ingress path — nginx/ALB/CDN — rather than localhost.

Compatibility. Confirm the support matrix against our current Laravel major before planning a 13 upgrade. If we are on 11/12, v1.1.0 likely still resolves, but pin the package explicitly rather than floating so a future minor cannot silently shift framework constraints. Treat this package as a gate on our own Laravel 13 timeline.

Sequencing.

  1. Constraint audit (composer why-not / dry-run) across every app that would consume it.
  2. Edge configuration: disable proxy buffering on stream routes (X-Accel-Buffering: no), set read timeouts above intended stream lifetime, bypass CDN caching.
  3. Runtime decision: dedicated php-fpm pool for stream routes versus Octane. Isolate stream traffic so it cannot starve normal request workers.
  4. Single-endpoint pilot, then incremental broadening.
  5. Client-side reconnect/backoff and heartbeat handling validated before GA.

Operational Impact

Maintenance. Small surface area and a single-maintainer project — bus factor is a genuine consideration. Wrap the package behind one internal interface so it is replaceable, and expect our Laravel major upgrades to be gated on its support; v1.1.0 is precisely that kind of unblocking release.

Support. Community/OSS only, no vendor SLA. Ownership should sit with the platform team, and the runbook must lead with infrastructure settings — most incidents will be proxy- and pool-shaped, not code-shaped.

Scaling. The dominant concern. Concurrency scales with worker count, not automatically horizontally: nodes × pool size is a hard ceiling on simultaneous streams. Because streams are long-lived, each one multiplies worker cost per user relative to a normal request. Multi-node fan-out requires a shared broadcast backend; without it, events published on node A never reach a client streamed from node B. Capacity planning should model concurrent streams as the primary unit rather than requests per second.

Failure modes.

  • Worker pool exhaustion from a traffic spike or a client population that never disconnects — this degrades the whole application, not just streaming. Highest severity; mitigate with a dedicated pool and per-user connection caps.
  • Silent proxy/CDN buffering, delivering events in bursts or not at all; presents as an application bug.
  • Idle timeouts severing streams without Last-Event-ID replay, causing silent event loss.
  • Load balancer reaping idle connections mid-stream.
  • Deploys and restarts dropping all open streams; needs graceful drain and client reconnection.
  • Missing authorization on stream routes exposing cross-tenant data.

Ramp-up. Low for developers — hours to a working endpoint. Higher for operations — roughly a sprint to harden edge configuration, isolate the worker pool, add dashboards for active streams and worker saturation, and write runbooks. Add explicit alerting on worker saturation and stream count before production rollout.

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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package