Skip to content

perf(response-store): project refresh candidates - #3389

Merged
james-elicx merged 4 commits into
mainfrom
codex/response-store-light-refresh-candidates
Sep 22, 2026
Merged

james-elicx merged 4 commits into
mainfrom
codex/response-store-light-refresh-candidates

Conversation

@james-elicx

Copy link
Copy Markdown
Member

Summary

  • return only reservation fields from refresh candidate selection
  • avoid loading and parsing response headers, revalidator arguments, cache tags, and response metadata before reservation
  • preserve filtering and the existing missing-revalidator error behavior
  • add an E2E assertion for the exact lightweight RPC shape

Performance

Manual refresh now transfers five small fields per candidate instead of full stored entries. The full entry is still read exactly where it is required, during reserveRegeneration().

Validation

  • npm run build:examples
  • vp test run tests/e2e.test.ts tests/service-binding-e2e.test.ts (79 passed)
  • npm run check
  • git diff --check

This is Cloudflare storage-backend query work; there is no corresponding Next.js behavior or test to port.

@pkg-pr-new

pkg-pr-new Bot commented Sep 22, 2026

Copy link
Copy Markdown

Open in StackBlitz

@vinext/cloudflare

npm i https://pkg.pr.new/@vinext/cloudflare@3389

create-vinext-app

npm i https://pkg.pr.new/create-vinext-app@3389

@vinext/types

npm i https://pkg.pr.new/@vinext/types@3389

vinext

npm i https://pkg.pr.new/vinext@3389

@cloudflare/workers-response-store

npm i https://pkg.pr.new/@cloudflare/workers-response-store@3389

commit: 3d0557e

@github-actions

github-actions Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Performance benchmarks

Compared 3d0557e against base 43560b1 using alternating same-runner rounds. Next.js was unchanged and skipped.

1 improved · 0 regressed · 5 within ±1.5%

Scenario Framework Baseline Current Change
Client bundle size (gzip) vinext 142.3 KB 142.3 KB ⚫ -0.0%
Client entry size (gzip) vinext 129.7 KB 129.7 KB ⚫ -0.0%
Dev server cold start vinext 3.31 s 3.29 s ⚫ -0.8%
Production build time vinext 3.98 s 3.90 s 🟢 -2.0%
RSC entry closure size (gzip) vinext 127.9 KB 127.9 KB ⚫ -0.0%
Server bundle size (gzip) vinext 226.0 KB 226.0 KB ⚫ -0.0%

View detailed results and traces

🟢 improvement · 🔴 regression · ⚫ change below 1.5% · paired base/head

@github-actions

Copy link
Copy Markdown
Contributor
Example Preview Production Original
app-router-cloudflare preview production
pages-router-cloudflare preview production
app-router-playground preview production original
realworld-api-rest preview production
nextra-docs-template preview production
benchmarks preview production
hackernews preview production original
response-store-demo preview production
workers-cache preview production
kv preview production
static-export preview production
web preview production

@james-elicx

Copy link
Copy Markdown
Member Author

/bigbonk review for issues

Time limit: 8 minutes. Complete the review and post all findings within that limit.

@ask-bonk

ask-bonk Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

LGTM!

github run

@james-elicx
james-elicx marked this pull request as ready for review September 22, 2026 15:46
@james-elicx
james-elicx merged commit a58a991 into main Sep 22, 2026
80 checks passed
@james-elicx
james-elicx deleted the codex/response-store-light-refresh-candidates branch September 22, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant