20-step scaling thread

A highly engaged social thread maps a 20‑step progression from a simple static site to a global hyperscale architecture, covering monolith-to-microservices transitions, caching, load balancers, database federation, Kubernetes, and multi-region deployment. The thread is being shared as a practical roadmap for iterative scaling decisions. (x.com)

A website can start as a single static page and end up spread across regions, databases, and load balancers, and one viral thread lays out that path in 20 steps. (substack.com) Neo Kim, who publishes under the name System Design, posted the roadmap on January 29, 2025. The thread groups its advice by traffic bands from “Prelaunch” to “1M Users.” (substack.com) The first steps are the simplest: use a static web framework before launch, then run the whole site on one virtual machine at about 10 users. At roughly 100 users, the post says to split the backend and database onto separate virtual machines. (substack.com) The middle of the ladder adds the parts most web users never see. At 1,000 users, Kim’s thread calls for more availability zones, serverless jobs for infrequent work, a monolith for simplicity, and leader-follower database replication for read traffic. (substack.com) At 10,000 users, the thread shifts to horizontal scale: autoscaling, replicated stateless web servers, cached popular reads, a load balancer, a content delivery network for images and video, and a three-tier architecture on separate virtual machines. (substack.com) Those terms describe how sites stay fast as demand rises. A load balancer acts like a traffic cop in front of many servers, and a content delivery network stores copies of files closer to users so pages do not have to fetch every image from one origin server. (bytebytego.com) At 100,000 users, the roadmap says to break the monolith into microservices, add more availability zones, place another cache between application code and the database, and move into containers orchestrated by Kubernetes. Kubernetes is software that schedules containers across many machines and restarts them when they fail. (substack.com) The final three steps target 1 million users: federate and partition the database, deploy servers in more regions, and put a global load balancer in front to direct users across those regions. Database partitioning, often called sharding, spreads data across multiple databases so one machine does not carry the whole write load. (substack.com; systemdesignschool.io) Kim also adds a caveat that often gets lost in checklist culture. “There are many ways to scale a website to 1 million users and this is simply one of them,” the post says, adding that the “best solution and the numbers depend on your needs.” (substack.com) That qualifier matches how system design is usually taught. ByteByteGo’s guide to scaling from zero to millions describes the process as “a journey” of continuous refinement, not a fixed recipe that every company follows in the same order. (bytebytego.com) The thread’s appeal is its sequencing: keep one machine while traffic is tiny, then add replication, caching, service splits, and geographic redundancy only when the bottleneck changes. That is a cleaner story than starting with Kubernetes and multi-region infrastructure before a site has real users. (substack.com; bytebytego.com)

Get your own daily briefing

Scout delivers personalized news, insights, and conversations tailored to your role and industry.

Download on the App Store

Shared from Scout - Be the smartest in the room.