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

Esi Debug Bundle Laravel Package

nelmio/esi-debug-bundle

A Symfony bundle that adds debugging support for Edge Side Includes (ESI). Use it during development to inspect ESI fragments, understand how includes are rendered behind a caching reverse proxy such as Varnish, and troubleshoot fragment caching and request behavior more easily.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Framework fit (decide first): Despite being filed under “Laravel/PHP,” this is a Symfony bundle for inspecting Edge Side Includes (ESI) fragment caching. Laravel has no first-class ESI story — no ESI-aware HttpCache, and the common edge/CDN providers ship their own debugging surfaces. For a Laravel roadmap this package is effectively out of scope; it only becomes relevant if the portfolio includes Symfony services (or a Symfony-based legacy/admin app) sitting behind an ESI-capable reverse proxy.
  • Caching architecture bets: If the team is evaluating ESI-based edge composition (fragment-level TTLs, per-user vs. shared fragments, surrogate keys), this tool is a tactical verification aid during a spike — it surfaces what the proxy sees around each ESI subrequest, which is exactly the data needed to confirm whether a fragment is being cached, revalidated, or bypassed.
  • Build vs. buy vs. skip: The capability is genuinely small — a dev-only profiler panel that dumps cache headers around ESI subrequests. Against that, the package is archived, 43 stars, 0 dependents. “Buy” costs nothing (MIT), but “buy” here means “inherit unmaintained code.” The realistic decision is build a ~1-day internal equivalent (a response listener plus a debug toolbar panel) or reach for the proxy vendor’s own tooling.
  • Incident triage use cases this informs: stale content served to logged-in users (personalized fragment leaking into a shared cache), fragments silently uncached after a deploy (wrong Vary/Cache-Control/Surrogate-Control), TTL and stale-while-revalidate mismatches between app and edge, and “which layer stripped my header” investigations.
  • Roadmap signal, not a roadmap item: The package is a diagnostic for a decision the team has already made. It should never appear as a deliverable; it appears as a line item in the cost of adopting ESI at all. If the org has no ESI, this is a zero-value dependency.

When to Consider This Package

Consider it only when all of the following hold:

  • The service is Symfony, and the team is already using ESI (Symfony HttpCache with the Esi extension, or Varnish/Fastly/Akamai assembling fragments).
  • You need local or staging visibility into cache decisions per ESI subrequest — i.e., you’re actively debugging, not just curious.
  • The Symfony version is pinned and older; expect the bundle to predate current Symfony releases and to need a fork or vendor-patch since upstream is archived.
  • It is installed as a require-dev dependency, never in a production image.
  • Someone owns the fork. Archived + 0 dependents means no security patching, no compatibility fixes, no issue triage — that is a standing maintenance tax you must accept explicitly.

Look elsewhere when:

  • The stack is Laravel (or any non-Symfony PHP) — there is no ESI integration to debug. Stop here.
  • You use Fastly, Cloudflare, or Akamai — their native real-time log/header tooling and Surrogate-Key/Cache-Status inspection are strictly better and maintained.
  • You use Varnish — varnishlog/varnishncsa plus X-Cache header convention covers this without a PHP dependency.
  • You are on current Symfony — unmaintained bundles are a predictable breakage source at every minor upgrade.
  • You need production-runtime observability — this is a debug aid, not a metrics pipeline. Invest in Cache-Status/Age/X-Cache header logging into your existing APM instead.
  • Procurement or security review requires a supported dependency — archived status fails most policies regardless of the tool’s innocence.

How to Pitch It (Stakeholders)

One-line summary: A tiny, free, dev-only Symfony tool that reveals how ESI fragments are being cached — useful for a narrow debugging window, but archived and unmaintained, so treat it as a fork-or-replicate candidate rather than an adoption.

For executives: This is not a platform decision. It costs nothing and touches nothing in production, but it is also unmaintained (archived, negligible adoption), so it cannot be a long-term dependency. The only real value it unlocks is shortening cache-related incident investigations for teams already running Symfony + ESI. If we are not running ESI, the correct answer is to not adopt it and to note that our Laravel services have no equivalent need — edge caching there is debugged through the CDN vendor’s own console.

For engineering: Expect a small, single-purpose profiler-style bundle from the Symfony 2/3/4 era. Budget roughly a day to fork it to a current Symfony version or, more likely, to reimplement its useful core — a kernel response listener that records request/response headers per ESI subrequest and a toolbar panel to display them. Whichever path, it stays in require-dev, behind a feature flag, never shipped in a production container. The strategic recommendation is to standardise on emitting and logging Cache-Status/Age/Surrogate-Control headers and alerting on cache-hit-rate regressions; that gives durable value where this bundle gives a one-off view.

Risk statement: Archived + 0 dependents = no CVE response and no compatibility guarantees. Mitigated by dev-only scope and a fork we control. Do not let it drift into production or into a shared base image.

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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
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