-
Notifications
You must be signed in to change notification settings - Fork 12
Add shared root caching with hybrid ESI and streaming assembly #1013
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
prk-Jr
wants to merge
69
commits into
main
Choose a base branch
from
1009-esi-cacheable-root-spec
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
69 commits
Select commit
Hold shift + click to select a range
0476999
Add ESI cacheable-root validation design for #1009
prk-Jr 40de13e
Correct the hold-cost argument in the ESI cacheable-root design
prk-Jr f15eaba
Add the measurement and Stage 0 implementation plan for #1009
prk-Jr 8e124ca
Record Step A findings for #1009: origin Vary check passes
prk-Jr 86fa20f
Reopen ESI as feasible and separate it from the Stage 0 optimisation
prk-Jr bc6b400
Fix the docs build and the design breaks in the #1009 spike
prk-Jr 86a39ac
Reconcile the #1009 documents with the request-neutrality correction
prk-Jr cf204f0
Close the remaining #1009 cross-document contradictions and gate the …
prk-Jr 59dd9b0
Fix stale summaries and rebuild the invariant checker so it cannot fa…
prk-Jr d420999
Make the #1009 docs invariant gate fail closed
prk-Jr e286c5c
Remove the #1009 documentation invariant checker
prk-Jr 62c4b70
Align the #1009 spec structure with what it actually covers
prk-Jr bcf2fd2
Add the esi crate to the Fastly adapter and record Task 1 as passed
prk-Jr b35f8df
Re-sequence the ESI spike for local-first validation
prk-Jr 7781009
Add AssemblyMode and gate the head seam on template neutrality
prk-Jr 606543f
Add the C2 shared-template cache gate
prk-Jr d9e0597
Decouple the body-close decision from the head script
prk-Jr f0ab7ac
Record Task 3 implementation progress and its limits
prk-Jr 672836c
Decide the C2 cache design: cache::core, not read-through
prk-Jr fee4622
Guard the silent-waste and cookie gaps a review found
prk-Jr fbff408
Keep request-scoped diagnostics out of the shared template
prk-Jr fe88b77
Record the Task 3 code review and adopt its gate
prk-Jr 6e6b21a
Render whole documents and compare bytes, and prove the test has teeth
prk-Jr 04a3196
Add the C2 template cache trait, key and null object
prk-Jr ecc6c53
Back the C2 template cache with Fastly Core Cache
prk-Jr b688d66
Resolve the Vary chicken-and-egg for the C2 cache key
prk-Jr 577eb85
Fail the C2 gate closed when the origin varies on an unkeyed header
prk-Jr 2db1063
Store the transformed template when the C2 gate authorizes it
prk-Jr 2a2e6c6
Serve a C2 hit without touching the origin
prk-Jr fe0658d
Execute the Core Cache join the publisher actually uses
prk-Jr 0686431
Give the ESI seam a fragment to include
prk-Jr 9539061
Prove ESI resolves the seam's marker on this toolchain
prk-Jr 0597f54
State the ESI processor's safety settings instead of inheriting them
prk-Jr 2617ecc
Record that ESI's mechanism is proven and its defaults are not safe
prk-Jr 0adb578
Stop a C2 hit from serving a shared-cacheable per-user document
prk-Jr b3ac59a
Resolve the ESI include in the request path so ads render
prk-Jr 4c55734
Read the origin's Cache-Control, not the one TS just wrote
prk-Jr 76df246
Close the three Task 6 gates that do not need a deployment
prk-Jr 00b8e02
Record the local run, and the pattern the bugs on this branch share
prk-Jr f1d9cb7
Architect streaming assembly, and correct the latency reading
prk-Jr bb8811c
Demonstrate that a cached root alone buys the reader nothing
prk-Jr 09b7cb7
Exclude non-GET from the shared cache, and close the ClientFill cover…
prk-Jr d1edffe
Stop the shared cache from being inert against a real origin
prk-Jr 712f26c
Record the review, including what it says about reviewing
prk-Jr 81eeec6
Add a local harness, and measure a ~100x TTFB regression with it
prk-Jr 073ff79
Fall back to inline whenever no shared template was authorized
prk-Jr 7828af1
Make the seam marker observable, since it is invisible by design
prk-Jr 1761320
Stream the cache hit, so the article arrives before the auction resolves
prk-Jr edaf311
Ask the origin for identity under shared modes, and make the harness …
prk-Jr 89f7417
Decode the transform output instead of crippling the origin fetch
prk-Jr a41d3e6
Assemble by byte seam, and carry slots through it
prk-Jr 2bc4624
Make the shared-template path deliver bids, and make its tests notice
prk-Jr 4ec9104
Plan the #1009 main merge and ESI hardening
prk-Jr b0568ba
Merge main into #1009 ESI cacheable-root work
prk-Jr e255521
Remove unused parser and client-fill spike paths
prk-Jr 7a53900
Canonicalize shared template cache keys
prk-Jr 6d84ab2
Harden ESI template freshness and miss collapse
prk-Jr 67a5706
Complete ESI byte-seam hardening
prk-Jr 024cb5b
Verify C2 assembly end to end
prk-Jr cbcbcc4
Document ESI rollout and rollback
prk-Jr 62ab04a
Honor Fastly surrogate freshness for ESI
prk-Jr fe907ac
Allow reloads to reuse ESI templates
prk-Jr b80c094
Make ESI template lifetime configurable
prk-Jr 2af557a
Simplify the shared-template ad seam
prk-Jr 4868436
Clarify ESI byte-seam terminology
prk-Jr d173079
Merge branch 'main' into 1009-esi-cacheable-root-spec
prk-Jr 3843e40
Restore ESI parsing for cold template assembly
prk-Jr fa37cfb
Merge current main into #1009 ESI cacheable-root work
prk-Jr e8c0eec
Merge branch 'main' into 1009-esi-cacheable-root-spec
aram356 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
♻️ refactor — Pinning by full commit hash is right, but this is the only git dependency declared inline in a crate manifest; every other git dep (the
edgezero-*family) lives in[workspace.dependencies]. Move it there for consistency.