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

Nova Echo Laravel Package

coreproc/nova-echo

coreproc/nova-echo integrates Laravel Echo with Laravel Nova, enabling real-time broadcasting and live updates for Nova resources, dashboards, and custom tools. It helps admin panels listen for broadcast events and refresh without polling, making interfaces more responsive.

Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • The package is a thin presentation-layer adapter: it subscribes Nova's Vue SPA to Laravel Echo channels and patches resource state on created/updated/deleted events. It introduces no new backend service, database table, or queue topology.
  • It is therefore additive to existing broadcasting infrastructure, not a standalone capability. Value realization depends entirely on the platform already having (or being willing to fund) a broadcaster — Pusher, Ably, or self-hosted Laravel Reverb — plus Echo and ShouldBroadcast events on the relevant models.
  • Fit is strongest for teams already broadcasting model changes for other consumers (mobile apps, dashboards). For a Nova-only team, this package converts a cheap admin convenience into a recurring infrastructure line item.
  • The package extends Nova, a commercial, closed-source, rapidly-versioned product. That is the dominant architectural concern: the integration surface is vendor-controlled and undocumented.

Integration feasibility

  • Expected path: composer require coreproc/nova-echo, publish config, apply a trait/field to target Nova resources, and ensure each model's broadcast events implement ShouldBroadcast with a broadcastOn() returning the configured channel.
  • The real integration question is how the JavaScript reaches Nova's SPA. Nova ships compiled assets; injecting Echo requires either a custom Nova tool/asset bundle or pre-compiled JS shipped by the package. Confirm the mechanism explicitly for your Nova major version — this is where most "drop-in" claims fail.
  • Server-side pagination is a functional constraint the description glosses over. Nova's index is paginated, filtered, and sorted on the server. The client cannot reliably know whether a newly created record matches the active filter set or sort order. Expect correct behavior for updates/deletes on visible rows and approximate behavior for inserts.
  • Detail-view live updates risk overwriting unsaved form state in an open editor — a data-loss-shaped UX defect requiring either a suppression rule or a "record changed, reload?" prompt.
  • Channel authorization must be wired for Nova's guard. Private/presence channels that don't scope by tenant or role are a horizontal data exposure risk.

Technical risk

  • Maintenance staleness (high): last release 2023-03-23 predates Nova 5 (Dec 2024). Nova's SPA internals change across minors; breakage will be silent (panels simply stop updating) rather than loud.
  • Adoption depth (medium-high): 19 stars implies minimal production exposure. Edge cases in filters, soft deletes, and relationship-heavy resources are likely untested.
  • Supply chain (medium): repository is unresolved in the metadata. For a package installed into an admin panel with privileged access, an unresolvable source is a blocker until provenance is verified.
  • Licensing (low): MIT is clean; note Nova itself is separately licensed and per-site, so the package inherits that constraint.

Key questions

  1. Which Nova major version(s) are actually supported, and is the JS injection mechanism compatible with our Nova version?
  2. Does it ship compiled assets or require a build step? Who owns that build when Nova upgrades?
  3. How does channel authorization bind to Nova's auth guard, and is per-tenant scoping possible?
  4. Are inserts reconciled against active filters/sorts/pagination, or appended optimistically?
  5. What is the behavior on websocket disconnect — silent stop, visible indicator, or polling fallback?
  6. Who is the maintainer, and what is the fork/patch posture if upstream goes dormant?

Integration Approach

Stack fit

  • Requires: Laravel (broadcasting enabled), Laravel Nova, Laravel Echo + a broadcaster driver, and a queue worker if broadcast events are queued (recommended).
  • Broadcaster choice drives cost and ops load: Pusher/Ably are managed and metered; Reverb is self-hosted and requires websocket TLS termination, proxying, and horizontal scaling with Redis pub/sub.
  • If we standardize on Reverb, this package becomes low-marginal-cost. If we introduce Pusher solely for Nova, expect an ongoing per-connection and per-message spend for a convenience feature.

Migration path

  • No data migration. Configuration-only, plus model event changes.
  • Reversible: remove the trait and the asset bundle; Nova reverts to its default polling-free, manual-refresh behavior with no schema impact. Keep this rollback cheap and documented.
  • Do not retrofit broadcasting onto every model. Scope to one or two resources where staleness has a measured operational cost (support queue, order fulfillment, incident triage).

Compatibility

  • Pin the package version and lock Nova's major version alongside it. Treat Nova upgrades as requiring an explicit re-validation of this integration.
  • Verify Echo client version parity with the broadcaster and with whatever JS runtime Nova's SPA uses.
  • Validate against our actual resource complexity: soft deletes, global scopes, relationship fields, custom filters — not just the happy path.

Sequencing

  1. Provenance and code review — resolve the repository, read the JS injection path, confirm no unexpected network calls or eval.
  2. Spike in a non-production Nova instance — one resource, one broadcaster, confirm end-to-end delivery including auth.
  3. Security review — channel naming, tenant scoping, auth guard binding.
  4. Pilot — one internal team, one resource, with explicit success criteria (e.g., median time-to-visibility for new records).
  5. Decide: adopt / fork / build in-house / abandon. Given the package's size, an in-house implementation is a realistic alternative and removes the maintenance dependency entirely.
  6. If adopted, fork and vendor the package so we control patches against Nova upgrades.

Operational Impact

Maintenance

  • Low ongoing code maintenance, but non-zero and event-driven: every Nova upgrade, Echo major, or broadcaster SDK bump is a re-validation trigger.
  • Assume we will be the maintainer of last resort. Budget a fork, a CI job that runs the integration test against new Nova releases, and a named owner.
  • Small dependency footprint is in its favor — fewer transitive CVEs than a typical admin-panel add-on.

Support

  • Community-only, MIT, no SLA. Internal support burden falls on the platform team; upstream responsiveness at 19 stars should be assumed to be slow or absent.
  • Document the failure signature ("panel stopped updating") in the runbook so on-call doesn't chase database or queue issues.

Scaling

  • Cost and load scale with concurrent admin sessions, not with record volume. Typically dozens, not thousands — manageable, but metered broadcasters charge per connection and per message.
  • Broadcast volume scales with write rate on subscribed models. High-churn tables (jobs, logs, metrics) will produce event storms; scope subscriptions narrowly and consider throttling or coalescing.
  • Self-hosted Reverb introduces a stateful service to operate: sticky routing, Redis pub/sub, TLS, and horizontal scale. That is a genuine new operational surface for a UI improvement.
  • Server-side queue capacity for broadcast jobs becomes a soft dependency — a backed-up queue means stale admin views.

Failure modes

  • Silent degradation (highest impact): websocket drops or Nova upgrade breaks the bundle; the UI simply stops updating with no error. Requires an explicit "live/offline" indicator or monitoring, otherwise users trust stale data.
  • Stale/incorrect state: inserts appearing in a filtered/sorted/paginated view they don't belong in; deleted records lingering; unsaved edits clobbered by an update event.
  • Authorization gaps: channel names not tenant-scoped can leak record payloads to users who can't see them in Nova.
  • Event storms: bulk imports or batch jobs trigger mass broadcasts, degrading broadcaster quota and browser performance.
  • Queue/worker outage: delayed delivery, eventually indistinguishable from a disconnect.

Ramp-up

  • Moderate: engineers need working fluency in Laravel broadcasting, Echo channels, guard-based channel authorization, and Nova's asset pipeline. That's 1–2 days for a Laravel-fluent engineer, more for the Nova asset-build specifics.
  • Add onboarding cost for support/on-call to recognize the "live updates stopped" signature.
  • Overall: technically low-effort, operationally medium-effort, strategically low-differentiation. Recommend a scoped pilot only if broadcasting infrastructure already exists; otherwise the infrastructure investment dwarfs the value of the package itself.
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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels