{"id":437,"date":"2026-05-04T00:00:00","date_gmt":"2026-05-04T00:00:00","guid":{"rendered":"https:\/\/wordpress.securinsight.ca\/index.php\/2026\/05\/04\/cache-pingora-now-powers-cloudflares-cache\/"},"modified":"2026-05-04T00:00:00","modified_gmt":"2026-05-04T00:00:00","slug":"cache-pingora-now-powers-cloudflares-cache","status":"publish","type":"post","link":"https:\/\/wordpress.securinsight.ca\/index.php\/2026\/05\/04\/cache-pingora-now-powers-cloudflares-cache\/","title":{"rendered":"Cache &#8211; Pingora now powers Cloudflare&#8217;s cache"},"content":{"rendered":"<p>Cloudflare&#8217;s cache now runs on a new proxy built on <a href=\"https:\/\/github.com\/cloudflare\/pingora\" target=\"_blank\">Pingora<\/a>, the Rust-based framework that already serves a significant portion of Cloudflare&#8217;s network traffic. The new proxy is faster, more memory-safe, and designed to evolve our cache architecture. It delivers immediate performance improvements and enables new caching capabilities.<\/p>\n<h4>What this brings<\/h4>\n<ul>\n<li><strong>Lower latency<\/strong>: The new proxy reduces per-request overhead through improved connection reuse.<\/li>\n<li><strong>Reduced cache MISSes<\/strong>: Enhanced cache retention improves origin offload.<\/li>\n<li><strong>Better RFC compliance<\/strong>: Caching behavior more closely follows HTTP caching standards.<\/li>\n<li><strong>Foundation for future features<\/strong>: The new architecture enables upcoming improvements to cache functionality and efficiency.<\/li>\n<\/ul>\n<h4>New features<\/h4>\n<ul>\n<li><strong>Asynchronous <code>stale-while-revalidate<\/code><\/strong>: Every request returns stale content immediately while revalidation happens in the background, instead of the first request after expiry blocking on the origin. Refer to the <a href=\"https:\/\/developers.cloudflare.com\/changelog\/post\/2026-02-26-async-stale-while-revalidate\/\">asynchronous <code>stale-while-revalidate<\/code> changelog<\/a> for details.<\/li>\n<li><strong>Unbuffered bypass by default<\/strong>: Responses that bypass cache are streamed directly to the client without buffering, reducing time-to-first-byte for uncacheable content.<\/li>\n<\/ul>\n<h4>Behavioral changes<\/h4>\n<p>The new architecture introduces the following behavioral changes to improve RFC compliance and correctness:<\/p>\n<ul>\n<li><strong><code>Vary: *<\/code> results in cache bypass<\/strong>: According to <a href=\"https:\/\/httpwg.org\/specs\/rfc9110.html#field.vary\" target=\"_blank\">RFC 9110 Section 12.5.5<\/a>, a <code>Vary<\/code> header value of <code>*<\/code> indicates the response varies on factors beyond request headers and must not be served from cache. Cloudflare now bypasses cache for these responses instead of storing them.<\/li>\n<li><strong><code>Set-Cookie<\/code> stripped on MISS and EXPIRED<\/strong>: For cacheable assets, <code>Set-Cookie<\/code> is now stripped on MISS and EXPIRED responses, not only on HITs.<\/li>\n<li><strong>Floating-point TTL values<\/strong>: Floating-point time-to-live values (for example, <code>max-age=1.5<\/code>) are rounded down to the nearest integer instead of being rejected as invalid.<\/li>\n<\/ul>\n<h4>What&#8217;s next<\/h4>\n<p>A deeper look at the new cache proxy is coming soon to the <a href=\"https:\/\/blog.cloudflare.com\/\" target=\"_blank\">Cloudflare blog<\/a>. For background on the underlying framework, read:<\/p>\n<ul>\n<li><a href=\"https:\/\/blog.cloudflare.com\/pingora-open-source\/\" target=\"_blank\">Open sourcing Pingora: our Rust framework for building programmable network services<\/a><\/li>\n<li><a href=\"https:\/\/blog.cloudflare.com\/how-we-built-pingora-the-proxy-that-connects-cloudflare-to-the-internet\/\" target=\"_blank\">How we built Pingora, the proxy that connects Cloudflare to the Internet<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Cloudflare&#8217;s cache now runs on a new proxy built on Pingora, the Rust-based framework that already serves a significant portion of Cloudflare&#8217;s network traffic. The new proxy is faster, more memory-safe, and designed to evolve our cache architecture. It delivers immediate performance improvements and enables new caching capabilities. What this brings Lower latency: The new [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-437","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/posts\/437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/comments?post=437"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/posts\/437\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/media?parent=437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/categories?post=437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/tags?post=437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}