Cloudflare architecture: how Cloudflare scaled (5 case studies)

The Cloudflare write-ups we track cover five systems: Pingora, a Rust proxy that replaced Nginx (the post cites 1 trillion requests a day); HTTP analytics rebuilt on ClickHouse in place of a Postgres/Citus setup (6M requests/sec); error-log analytics on ClickHouse; Quicksilver, which replicates Cloudflare's configuration key-value store to every edge server in seconds on LMDB; and D1, which runs SQLite queries at the edge while a separate control plane manages millions of databases.

We track 5 public engineering write-ups by Cloudflare, published between 2018 and 2026. Techniques that come up more than once: columnar storage (2). Stack mentioned most: ClickHouse (2) and Go (2). 4 of the 5 state concrete scale numbers, for example "millions of databases". Each card below links to our short summary and the original post.

Tech used in Cloudflare's scaling write-ups

Cloudflare scaling timeline: every story, summarized

  1. 2018-03-06

    HTTP Analytics for 6M requests per second using ClickHouse

    Cloudflare rebuilt its HTTP analytics pipeline on ClickHouse, replacing a Postgres/Citus setup.

    6M requests/seccolumnar storageaggregationpipeline redesignClickHouseKafkaGo

    Read the original post →

  2. 2020-03-30

    Introducing Quicksilver: Configuration Distribution at Internet Scale

    Quicksilver replicates Cloudflare's config key-value store to every edge server in seconds, built on LMDB.

    14 million HTTP requests/sec (network peak)replicationconfig distributionLMDBGo

    Read the original post →

  3. 2022-09-02

    Log analytics using ClickHouse

    Cloudflare moved its error-log pipeline to ClickHouse and shares schema and query lessons.

    columnar storageschema designClickHouse

    Read the original post →

  4. 2022-09-14

    How we built Pingora, the proxy that connects Cloudflare to the Internet

    Cloudflare replaced Nginx with Pingora, a Rust proxy that reuses connections better and needs less CPU and memory.

    1 trillion requests/dayrewriteconnection reuseRustNginx

    Read the original post →

  5. 2026-10-13

    Under the hood, off the hot path: how D1 scales to millions of databases

    How Cloudflare's D1 keeps query execution at the edge while a separate control plane manages millions of SQLite databases.

    millions of databasescontrol plane separationmulti-tenancyedge computingSQLiteDurable ObjectsWorkers

    Read the original post →

FAQ

Why did Cloudflare replace Nginx with Pingora?

Cloudflare's 2022 post says it replaced Nginx with Pingora, a proxy written in Rust that reuses connections better and needs less CPU and memory. The post cites 1 trillion requests per day.

What database does Cloudflare use for analytics?

ClickHouse, in both analytics posts we track. In 2018 Cloudflare rebuilt its HTTP analytics pipeline on ClickHouse (with Kafka and Go), replacing a Postgres/Citus setup, at 6M requests per second. In 2022 it moved its error-log pipeline to ClickHouse too.

How does Cloudflare D1 scale to millions of databases?

Cloudflare's 2026 post explains that D1 is built on SQLite, Durable Objects and Workers. It keeps query execution at the edge while a separate control plane manages millions of databases off the hot path.

The best scaling write-ups, weekly

One email a week. No spam.

Subscribe

Browse all 87 topics →