Request collapsing

Request collapsing
Adam Cassar

Co-Founder

2 min read

Request collapsing was born out of the need to protect a busy origin server with changing content. With many visitors on a site, a cache miss can amplify requests to an origin server when content expires. This behaviour is commonly referred to as a cache stampede failure or dog-piling.

When request collapsing is enabled, only a single request is sent to an origin server for a given resource, and then using the resulting body to satisfy pending requests.

This can prevent a highly demanded resource in the cache causing a flood of requests to an origin server when it expires. Enabling this feature appropriately on high traffic sites can level out requests and traffic to origin servers.

How it works

Request collapsing is implemented internally using cache keys and queues. The cache keys are used as keys to a map, with client requests tracked using a queue. Responses secondary keys are then used to match waiting client requests for origin responses. Matching requests can then be fulfilled using the same response.

Failed requests are retried in the same manner.

If a response to an active request is marked as private Cache-Control: private or Set-Cookie then all queued and future matching requests will go directly to the origin without trying to match them.

This implementation allows Peakour to serialise requests to an origin, so its important to only enable the feature on resources that you know will be cacheable, either through cache-control headers or Peakhour configuration.

How do you know its working?

Request collapsing can be verified with the Debug enabled and the cache-status header in the response. A collapsed request will look like the below, noting the 'collapsed' at the end.

cache-status: peakhour.io; fwd=uri-miss; key="https://website.com/home-eco.jpg"; ttl=86400; collapsed

How its used in practice?

Image optimisation

Peakhour.IO uses request collapsing internally for image transforms. The feature ensures we only transform a single image when a resources expires on the edge, saving latency sensitive image transformations, client transform costs and a better all round experience to end users.

Dynamic page caching

Request collapsing is an excellent candidate when enabling caching of expensive dynamically written pages. Peakhour.IO can cache server heavy Wordpress, Magento, Presta Shop, Drupal and other platforms via our caching plugin. The plugin enables seamless operation of the CDN by notifying us when content changes.

Of course, content always needs to change during busy periods such as sales or item purchases. During these periods servers can be overwhelmed when pages incurr a cache miss. Request collapsing can help smooth out this traffic ensuring optimal response times for all users.

Enterprise-Grade Security and Performance

Peakhour offers enterprise-grade security to shield your applications from DDoS attacks, bots, and online fraud, while our global CDN ensures optimal performance.

Contact Us

Related Content

Enterprise-Level Caching for All

Enterprise-Level Caching for All

Elevate your e-commerce with our newly released Magento 2 plugin. Experience enterprise-level caching features accessible to all Peakhour customers.

Vary Cache on Cookie Value

Vary Cache on Cookie Value

Varying the cache on a specific cookie value is a powerful way to cache personalised content. Many CDNs consider this an enterprise feature, but it's essential for modern dynamic websites.

Cache Tags/Surrogate Keys

Cache Tags/Surrogate Keys

Surrogate Keys, or cache tags, are a powerful mechanism for targeted flushing of content from a cache, not all CDNs support them though.

© PEAKHOUR.IO PTY LTD 2025   ABN 76 619 930 826    All rights reserved.