Description
From the 2026-07-05 performance & architecture review (compression section).
The assembled HTML is not sent uncompressed: the pipeline mirrors origin encoding (gzip in, gzip out; brotli q4), re-encoded in the guest (streaming_processor.rs:146-189). The real penalty is guest CPU per request (decompress + recompress, the largest per-request CPU cost in the pipeline), which is now the billable dimension under Fastly's vCPU-milliseconds model.
Fix
Request Accept-Encoding: identity (or gzip-only) from origin for the SSAT HTML route, emit identity, set X-Compress-Hint: on, and let Fastly compress at delivery.
Caveat: platform compression is level 1; measure the wire-size delta on representative pages before committing. This also matches the Varnish identity-fetch approach already planned for BLOX.
Effort / expected effect
- Effort: Small/Medium
- Expected effect: Removes recompression CPU (billable) from every page.
Sequencing item 7 of 10.
Description
From the 2026-07-05 performance & architecture review (compression section).
The assembled HTML is not sent uncompressed: the pipeline mirrors origin encoding (gzip in, gzip out; brotli q4), re-encoded in the guest (
streaming_processor.rs:146-189). The real penalty is guest CPU per request (decompress + recompress, the largest per-request CPU cost in the pipeline), which is now the billable dimension under Fastly's vCPU-milliseconds model.Fix
Request
Accept-Encoding: identity(or gzip-only) from origin for the SSAT HTML route, emit identity, setX-Compress-Hint: on, and let Fastly compress at delivery.Caveat: platform compression is level 1; measure the wire-size delta on representative pages before committing. This also matches the Varnish identity-fetch approach already planned for BLOX.
Effort / expected effect
Sequencing item 7 of 10.