Mindket

System Design Primer

Newversion 2 · updated
Star377k

Overview

Donne Martin’s organized collection for learning to design large-scale systems and preparing for the system design interview, with worked solutions and Anki decks. Setup notes cover reading it, a local copy, the decks, and Claude Code, Codex or Cursor as a study partner.

System Design Primer is an open-source project on GitHub in the Education category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

At a glance

Runs in
  • GitHub: the README, with an index that links to each section
  • A local copy: a ZIP download or a clone, opened in any Markdown viewer
  • Anki: the three flashcard decks, which the README calls great for use while on-the-go. Anki’s site says the computer version and AnkiDroid for Android are free, and that AnkiMobile is the official iOS app, whose purchases help fund Anki’s development
  • A notebook tool: for the six object oriented design notebooks
Start with
git clone https://github.com/donnemartin/system-design-primer.git

Platform

AndroidOperating system
iOSOperating system
Any coding agentCoding agent
Claude CodeCoding agent
CodexCoding agent
CursorCode editor

About

What it is

System Design Primer is an organized collection of resources for learning how to design large-scale systems and for preparing for the system design interview. Its owner, Donne Martin, writes that a vast number of resources on system design principles are scattered throughout the web, and this repository gathers them. It is a long README with folders beside it, not a program. The README holds summaries of system design topics with their pros and cons, and says everything is a trade-off. Each section links to deeper reading. Beside it sit solutions to practice questions and three Anki flashcard decks.

  1. Pick your timeline in the study guide
  2. Read the topic summaries, from DNS to security
  3. Learn the four steps for an interview question
  4. Try a practice question before you open its solution
  5. Review the ideas with the Anki decks

Who it suits

People preparing for a system design interview, and engineers who want a map of how large systems fit together. The README says system design is a required part of the technical interview process at many tech companies. It also says you do not need to know everything in it, and that you should start broad and go deeper in a few areas. More experienced candidates are generally expected to know more.

Who uses it, and how
WhoHow they use itExample
Short on timeBreadth first, then some practice questionsA candidate with a short timeline reads the topic summaries, reviews the four steps and works through a few of the eight solutions.
Planning aheadMore depth, and most of the questionsSomeone with a long timeline goes deeper on caching and databases, then works through most of the solutions and notebooks.
New to large systemsThe start-here steps, in orderA developer watches the Harvard scalability lecture, reads the scalability article, then moves on to performance vs scalability.
Study groupsOne question, one shared answerA group picks “Design a web crawler”, works the four steps on a whiteboard, then opens the solution and compares.
ContributorsFix errors, add sections or translateA native speaker of a language nobody has started files an issue for it, as CONTRIBUTING.md asks.

Skip it if you want a finished, linear course. The README says some topics are still under development, and it marks the object oriented design solutions the same way.

Where to use it

Anywhere you can open a web page or a Markdown file, and in Anki for the flashcards.

  • GitHub: the README, with an index that links to each section
  • A local copy: a ZIP download or a clone, opened in any Markdown viewer
  • Anki: the three flashcard decks, which the README calls great for use while on-the-go. Anki’s site says the computer version and AnkiDroid for Android are free, and that AnkiMobile is the official iOS app, whose purchases help fund Anki’s development
  • A notebook tool: for the six object oriented design notebooks
  • Translations: the README links Japanese, Simplified Chinese and Traditional Chinese versions

The README gives no steps for any coding agent. Mindket’s notes for Claude Code, Codex and Cursor are ordinary steps for giving an agent the files to read, and they say so.

How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder. The primer itself needs no install, and the README gives no install line.

What you need first
NeedDetail
A browserTo read the README and the solutions on GitHub
GitOnly for a clone. The README gives no clone line, so the address below comes from GitHub’s own answer for the repository
AnkiFor the three flashcard decks. The README links apps.ankiweb.net
A notebook toolFor the six object oriented design notebooks, which are .ipynb files. The README names none
A GitHub accountOnly to fork the repository and send a change
  1. Read the README on the repository page. It is under the file list, in your browser.
  2. Keep a copy with Download ZIP or a clone. Download ZIP is GitHub’s own, on the Code button. The first block below clones the repository.
  3. Import a flashcard deck into Anki. Install Anki, save a deck file, then choose File, Import in Anki and pick the file.
  4. Send a change as CONTRIBUTING.md says. That means fork, clone your fork, branch, commit, push and open a pull request.

The first block is the clone address GitHub reports for the repository. The second block is the command set from CONTRIBUTING.md, without its $ prompts. Replace YourLogin with your GitHub name, my-feature with a branch name and modified_files with the files you changed. CONTRIBUTING.md says not to work in the master branch.

git clone https://github.com/donnemartin/system-design-primer.git
git clone git@github.com:YourLogin/system-design-primer.git
cd system-design-primer
git checkout -b my-feature
git add modified_files
git commit
git push -u origin my-feature

The last step happens on GitHub: open your fork’s page and click Pull Request. The clone line in the second block uses an SSH address, which needs an SSH key set up with GitHub (Mindket’s note, ordinary Git).

How to use it

Open the Study guide and pick your timeline: short, medium or long. Then read “System design topics: start here”, which begins with a Harvard scalability lecture and a scalability article. After the topics, work the questions. Write your own answer to each step before you open the solution.

The README’s four steps are to outline use cases, constraints and assumptions, to create a high level design, to design core components and to scale the design. It calls the interview an open-ended conversation that you are expected to lead. An agent can play the interviewer while you lead.

Read "How to approach a system design interview question" in README.md. Then act as the interviewer for "Design a web crawler". Let me lead through the four steps, and do not open solutions/system_design/web_crawler/README.md until I say I am done.

Ask the agent to quote the line it used, so you can compare it with the page. The README links many videos and articles, and an agent cannot watch a video for you.

Example

Take the first question, Design Pastebin.com (or Bit.ly). Write your own scope first. Then open the solution. It scopes the problem to six use cases. A user enters a block of text and gets a randomly generated link. A user enters a paste’s url and views the contents. The user is anonymous. The service tracks analytics of pages, deletes expired pastes and has high availability.

Its stated assumptions include 10 million users, 10 million paste writes per month, 100 million paste reads per month and a 10:1 read to write ratio. It then follows the same four steps, and closes with additional talking points such as NoSQL, caching and security. You compare each of your four answers with its answer.

For newcomers and experts

If you are new. System design is the work of deciding how the parts of a large service fit together, and what happens when traffic grows. You do not need to read all of it. The README says so, and its study guide has a short timeline for exactly that.

Start with the Harvard lecture. It covers vertical scaling, horizontal scaling, caching, load balancing, database replication and database partitioning. The scalability article comes next, linked as a web.archive.org copy, in four parts: clones, databases, caches and asynchronism.

For experts. After the high-level trade-offs of performance vs scalability, latency vs throughput and availability vs consistency, the README goes topic by topic.

  • Patterns: consistency (weak, eventual, strong) and availability (fail-over, replication)
  • Network: DNS, CDNs, load balancers and reverse proxies
  • Services: the application layer, microservices and how services find each other
  • Data: relational databases, NoSQL and how to choose between them
  • Cache: client, CDN, web server, database and application caching, with cache-aside, write-through, write-behind and refresh-ahead
  • Async and communication: message queues, task queues, back pressure, HTTP, TCP, UDP, RPC and REST
  • Security

The Appendix adds a powers of two table, latency numbers every programmer should know, and more interview questions with outside links. It also has tables of real world architectures and company architectures, and a list of company engineering blogs. The README’s Under development list names three topics: distributed computing with MapReduce, consistent hashing and scatter gather.

Good to know

Reading the primer runs nothing on your computer. The questions are about what it links to and what you open.

  • License: CC BY 4.0. LICENSE.txt reads “Copyright 2017 Donne Martin” and “Creative Commons Attribution 4.0 International License (CC BY 4.0)”. GitHub’s own license field reads “Other”. Every article, talk and paper the README links to has its own owner and terms
  • Links: the README points to many outside articles, videos and slide decks, some as web.archive.org copies, and many are plain http links. One can be dead on the day you click it
  • Flashcards: the decks are Anki package files. Anki’s manual says a package can carry the author’s scheduling information, and Anki 23.10 and later lets you leave “Import any learning progress” unselected to remove it. Mindket’s notes did not open the decks
  • Notebooks: the LRU cache notebook starts a code cell with %%writefile lru_cache.py, and its saved output reads “Overwriting lru_cache.py”. The folder already holds the repository’s own lru_cache.py, so running that cell overwrites it
  • Pictures: the Pastebin and AWS scaling solutions, the two Mindket’s notes read, load pictures from i.imgur.com over plain http
  • Outbound: reading loads GitHub and whatever site a link opens. Git and Anki are your own programs, and AnkiWeb’s sync is a separate service that these notes do not turn on
  • Removal: delete the local folder. A fork stays in your GitHub account until you delete it in the fork’s settings (Mindket’s note, ordinary GitHub). Remove a deck inside Anki

README and files

README

System Design Primer: setup notes

This kit holds setup notes only. Mindket wrote them. The primer, its solutions, notebooks and flashcard decks stay in Donne Martin's repository: https://github.com/donnemartin/system-design-primer

These notes are not made or endorsed by Donne Martin. The README is titled "The System Design Primer", and its Motivation section opens with two lines: "Learn how to design large-scale systems." and "Prep for the system design interview." The repository's GitHub description adds "Includes Anki flashcards." Source: https://github.com/donnemartin/system-design-primer/blob/master/README.md and GitHub's repository answer, https://api.github.com/repos/donnemartin/system-design-primer

License: Creative Commons Attribution 4.0 International (CC BY 4.0). GitHub's own license field reads "Other" and names no standard license, so the license is the LICENSE.txt file (https://github.com/donnemartin/system-design-primer/blob/master/LICENSE.txt). It reads "Copyright 2017 Donne Martin" and "Creative Commons Attribution 4.0 International License (CC BY 4.0)", and gives the address http://creativecommons.org/licenses/by/4.0/. The README's License section says the same. Every article, talk and paper the README links to has its own owner and terms.

What it is

A reading collection with flashcards, not a program. The README holds, in this order:

  • a Motivation section, then the Anki flashcards section with three decks
  • a Contributing section
  • an Index of system design topics, described as "Summaries of various system design topics, including pros and cons", where "Everything is a trade-off" and each section links to more in-depth resources
  • a Study guide with short, medium and long timelines
  • How to approach a system design interview question, in four steps
  • System design interview questions with solutions (eight), and object-oriented design questions with solutions (six, marked "under development")
  • the topic sections themselves, from performance versus scalability to security
  • an Appendix: a powers of two table, latency numbers, additional system design interview questions, real world architectures, company architectures and company engineering blogs
  • Under development, Credits, Contact info and License

The repository also holds the solutions/ folder the README links, the decks in resources/flash_cards/, CONTRIBUTING.md, TRANSLATIONS.md, three translations of the README, and a generate-epub.sh script the README does not mention. Source: the README, the repository's file tree and the pages named in each setup file.

What installs

Nothing, to read it. The README gives no install line. The flashcard decks need the Anki program. The object-oriented design solutions are Jupyter notebook files (.ipynb), which need a notebook tool to run and not to read.

What you need first

  • To read it: a browser.
  • To keep a local copy: Git. The README gives no clone line. GitHub's repository answer reports this clone address: https://github.com/donnemartin/system-design-primer.git. Running git clone on it is ordinary Git (Mindket's note, not the maker's).
  • To study the flashcards: Anki, which the README links at https://apps.ankiweb.net/
  • To run a notebook: a notebook tool. The notebook these notes read names a Python 3 kernel. The README gives no steps for running one.
  • To fork the repository and send a change: a GitHub account. CONTRIBUTING.md starts from its Fork button.

Per-platform notes

  • setup/read-on-github.md: the README, the study guide, the four steps, the solutions' places and the translations
  • setup/local-copy-and-contribute.md: a local copy, the fork, branch and pull request steps CONTRIBUTING.md gives, the translation rules and the epub script
  • setup/anki-flashcards.md: the three decks, and importing them into Anki
  • setup/solutions-and-notebooks.md: the eight system design solutions and the six notebooks
  • setup/coding-agents.md: using Claude Code, Codex, Cursor and other agents as a study partner (Mindket's notes, since the maker documents no agent)

Update or remove

A cloned copy is a Git folder: to update it, run git pull inside it (Mindket's note, ordinary Git). A ZIP copy is a snapshot: download a new one to get later changes. To remove it, delete the folder. The README gives no uninstall steps. Anki keeps an imported deck in its own collection, so remove a deck there.

Outbound connections

  • Reading on GitHub loads GitHub. The README's pictures are files in the repository's images/ folder, except "Latency numbers visualized", which loads through GitHub's camo.githubusercontent.com image proxy from http://i.imgur.com/k0t1e.png. The Pastebin and AWS scaling solutions, the two these notes read, load pictures from i.imgur.com over plain http.
  • The README links to many other sites: engineering blogs, slide decks, papers, videos and web.archive.org copies. Opening a link loads that site. More than a hundred lines of the README hold a plain http link.
  • Anki and the notebook tool are your own programs, and these notes ask neither to send anything. Git contacts GitHub when you clone or pull, and the git push -u origin my-feature step from CONTRIBUTING.md sends your branch to your fork on GitHub.

Sources

Files
README.md  6 KB
setup/anki-flashcards.md  4 KB
setup/coding-agents.md  3 KB
setup/local-copy-and-contribute.md  4 KB
setup/read-on-github.md  4 KB
setup/solutions-and-notebooks.md  5 KB

6 files, 26 KB, downloaded as a zip.

What’s new

  • Version 2 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

markhopsAsk HN: Architecture Diagrams for GitHub Readme.md?Does anyone have a recommendation for a tool that can make architecture diagrams (flowcharts) like the one found here? https://github.com/donnemartin/system-design-primer Ideally, I would like the diagrams to be hosted somewhere, instead of attaching them to an Issue as described here:…1 point · 5 replies@itsalexzajac.bsky.social7. 𝗧𝗵𝗲 𝗦𝘆𝘀𝘁𝗲𝗺 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗿𝗶𝗺𝗲𝗿 335K+ stars on GitHub. The most community-validated resource for learning system design from scratch. Diagrams, practice problems, real tradeoffs. → github.com/donnemartin...1 like · 1 reply@gippp69$81r/BestGitHubRepos6 GitHub repos that teach you how databases actually work!danebaliaAsk HN: AI Architecture Systems DesignAre there any quality system design resources out there like https://github.com/donnemartin/system-design-primer that cover AI Architectures instead - RAG, intelligent document processing, agent pattern etc.1 pointGitHub Trending8. https://github.com/donnemartin/system-design-primer - Python, 138 stars today 9. https://github.com/antirez/ds4 - C, 385 stars today 10. https://github.com/shiyu-coder/Kronos - Python, 217 stars today 11. https://github.com/Panniantong/Agent-Reach - Python, 1052 stars today 12 […]1 like@Sujay__Raj5 free CS repos: build-your-own-x: rebuild it yourself (558K) https://t.co/QXWbTTH0iO system-design-primer: system design 101 (376K) https://t.co/JUNlDg3GEp developer-roadmap: pick your path (371K) https://t.co/JEuLmY3Xc7 awesome-python: find any Python tool (328K) https://t.co/Bh0pG0TNIq…r/dataengineeringWorth learning system design at junior-mid level, or focus on something else like data modelling?___luigiAsk HN: What are the best resources to crack system design interviews?Hi, I have seen many resources about algorithms and leetcode questions, but as engineers became senior, there is more emphasis on "System Design interviews" and "SW architecture". There are many important components (CAP, Load balancers, DNS, Availability, Consistent Hashing, TCP/IP etc.) in any…1 pointIndigo Karasudonnemartin/system-design-primer again. Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.. The failure modes tell you what the docs don't. #systems #ai1 like@ruyi3699GitHub 上收藏的仓库一抓一大把,可真正点开过的能有几个?说句实在话,这跟囤电子书没啥区别,存下来就当自己已经学过了。📚 能让我反复翻出来看的,兜兜转转也就这 5 个: 1️⃣ public-apis —— 几百个免费 API 按领域分好类,做 demo 时随手一翻就有 https://t.co/zMCUBDciKP 2️⃣ build-your-own-x —— 从零手撸数据库、编译器、Docker,费曼学习法的天花板级实践 https://t.co/FqueFYA8Hz 3️⃣ developer-roadmap ——…___luigiAsk HN: What are the best resources to crack system design interviews?Hi, I have seen many resources about algorithms and leetcode questions, but as engineers became senior, there is more emphasis on "System Design interviews" and "SW architecture". There are many important components (CAP, Load balancers, DNS, Availability, Consistent Hashing, TCP/IP etc.) in any…1 point

Searched

More from Mindket

See all from Mindket

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Guizang PPT Skill

op7418 · Skill

Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…

New29.8k

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k

Similar projects

See all in Education

The Algorithms Python

TheAlgorithms · Kit

TheAlgorithms’ open source collection of algorithms and data structures, each written in Python for learning. Setup notes cover reading it on GitHub or its doc…

New226k

Vāgdhenu by prathoshap

prathoshap · Kit

Reads classical Sanskrit verses aloud in a chant style, using one trained voice and a reference clip that sets the rhythm. For people who study, recite or need…

New

Limite 1B - Violetto

paradigma-inc · Kit

Solves hard math problems with a 1B-parameter model trained from scratch for fast, high-volume reasoning. It suits developers who run math workloads on an NVID…

New