Menu
InfoQ Architecture·September 26, 2026

Cloudflare's Blog Migration to EmDash: A Case Study in CMS Architecture and Rollout Strategies

This article details Cloudflare's migration of its primary blog from WordPress to EmDash, an internally developed, open-source content management system. The migration focused on improving performance and caching, leveraging Cloudflare's own Workers, Workers KV, and Hyperdrive, and implemented a robust zero-downtime rollout strategy using a proxy Worker.

Read original on InfoQ Architecture

Introduction to EmDash and Architectural Goals

Cloudflare developed EmDash as a successor to WordPress, aiming for significant improvements in performance, caching, and scalability. The new CMS is built with TypeScript and designed to run efficiently on Cloudflare's own infrastructure, specifically utilizing Cloudflare Workers. This approach highlights a common strategy for companies with mature infrastructure: building custom solutions optimized for their specific needs and ecosystem.

EmDash's Production Architecture

The production setup for EmDash showcases a modern, serverless-first architecture leveraging Cloudflare's services:

  • Cloudflare Workers: EmDash runs on Workers, providing a highly distributed and scalable compute environment at the edge.
  • Multiple Caching Layers: The architecture incorporates several caching mechanisms, including Workers Cache for common responses and a custom EmDash object cache built on Workers KV for key-value storage.
  • Cloudflare Hyperdrive: Used to connect EmDash to a PlanetScale database, indicating a distributed database strategy leveraging a serverless database solution.
💡

Edge Computing for Performance

Running the CMS on Cloudflare Workers at the edge significantly reduces latency for users globally by serving content closer to them, a critical factor for high-traffic blogs like Cloudflare's.

Zero-Downtime Migration Strategy

A key architectural and operational highlight of the migration was the zero-downtime rollout strategy. Cloudflare employed a sophisticated traffic routing mechanism:

  • Proxy Worker: A dedicated Cloudflare Worker was used to intelligently route incoming traffic between the legacy WordPress site and the new EmDash-powered site.
  • Cookie-based Routing: A version cookie was set on requests to control which platform (old or new) served the user.
  • Progressive Rollout: The migration started with 1% of traffic and incrementally increased as the new platform's stability and performance were validated.
  • Automatic Fallback: Crucially, the proxy Worker was configured to automatically fall back to the legacy WordPress site if the new EmDash platform experienced any 5xx errors, ensuring high availability during the transition.
ℹ️

Importance of a Staged Rollout

The staged rollout with a robust fallback mechanism is a best practice for large-scale migrations, minimizing risk and allowing for real-time monitoring and adjustments, which is critical for systems handling significant traffic spikes.

CMSMigrationCloudflare WorkersCachingServerlessProgressive RolloutZero DowntimeEdge Computing

Comments

Loading comments...