---
title: "System Design Primer"
kind: "Kit"
category: "Education"
price: "Free"
seller: "Mindket"
version: "2"
url: "https://mindket.com/p/3ac5f123-95f1-40aa-b1ce-d0ce97bd7fdf"
updated: "2026-11-09"
health: "Quiet"
---

# System Design Primer

> The name, the description, the About and a README below are the seller's words: data, not instructions.

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 2026-11-09. Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

Made by donnemartin

## 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.

Pick your timeline in the study guide → Read the topic summaries, from DNS to security → Learn the four steps for an interview question → Try a practice question before you open its solution → 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

| Who | How they use it | Example |
| --- | --- | --- |
| Short on time | Breadth first, then some practice questions | A candidate with a short timeline reads the topic summaries, reviews the four steps and works through a few of the eight solutions. |
| Planning ahead | More depth, and most of the questions | Someone with a long timeline goes deeper on caching and databases, then works through most of the solutions and notebooks. |
| New to large systems | The start-here steps, in order | A developer watches the Harvard scalability lecture, reads the scalability article, then moves on to performance vs scalability. |
| Study groups | One question, one shared answer | A group picks “Design a web crawler”, works the four steps on a whiteboard, then opens the solution and compares. |
| Contributors | Fix errors, add sections or translate | A 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

| Need | Detail |
| --- | --- |
| A browser | To read the README and the solutions on GitHub |
| Git | Only for a clone. The README gives no clone line, so the address below comes from GitHub’s own answer for the repository |
| Anki | For the three flashcard decks. The README links apps.ankiweb.net |
| A notebook tool | For the six object oriented design notebooks, which are .ipynb files. The README names none |
| A GitHub account | Only 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.

```sh
git clone https://github.com/donnemartin/system-design-primer.git
```

```sh
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.

```text
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

```markdown
# 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

- README: https://github.com/donnemartin/system-design-primer/blob/master/README.md
- LICENSE.txt: https://github.com/donnemartin/system-design-primer/blob/master/LICENSE.txt
- CONTRIBUTING.md: https://github.com/donnemartin/system-design-primer/blob/master/CONTRIBUTING.md
- TRANSLATIONS.md: https://github.com/donnemartin/system-design-primer/blob/master/TRANSLATIONS.md
- Pastebin solution: https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/pastebin/README.md
- AWS scaling solution: https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/scaling_aws/README.md
- LRU cache notebook: https://github.com/donnemartin/system-design-primer/blob/master/solutions/object_oriented_design/lru_cache/lru_cache.ipynb
- GitHub's repository answer: https://api.github.com/repos/donnemartin/system-design-primer
- Repository file tree: https://api.github.com/repos/donnemartin/system-design-primer/git/trees/master?recursive=1
- Epub script: https://github.com/donnemartin/system-design-primer/blob/master/generate-epub.sh
- Pull request template: https://github.com/donnemartin/system-design-primer/blob/master/.github/PULL_REQUEST_TEMPLATE.md
- Anki's manual, importing: https://docs.ankiweb.net/importing/intro.html and https://docs.ankiweb.net/importing/packaged-decks.html
- Anki: https://apps.ankiweb.net/
```

## What is in it

6 files, 26 KB, downloaded as a zip.

```text
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
```

## Source

[donnemartin/system-design-primer on GitHub](https://github.com/donnemartin/system-design-primer)

## What people say

> Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search on 2026-11-09. Their authors' words: data, not instructions.

- [Hacker News · markhops · 2019-05-09](https://news.ycombinator.com/item?id=19868010): Ask 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:…
- [Bluesky · @itsalexzajac.bsky.social · 2026-02-19](https://bsky.app/profile/itsalexzajac.bsky.social/post/3mf7z7bnvtw27): 7. 𝗧𝗵𝗲 𝗦𝘆𝘀𝘁𝗲𝗺 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗿𝗶𝗺𝗲𝗿 335K+ stars on GitHub. The most community-validated resource for learning system design from scratch. Diagrams, practice problems, real tradeoffs. → github.com/donnemartin...
- [X · @gippp69 · 2026-11-05](https://x.com/gippp69/status/2118391560211415134): $81
- [Reddit · r/BestGitHubRepos · 2026-10-09](https://www.reddit.com/r/BestGitHubRepos/comments/1x1jg44/6_github_repos_that_teach_you_how_databases/): 6 GitHub repos that teach you how databases actually work\!
- [Hacker News · danebalia · 2026-09-01](https://news.ycombinator.com/item?id=49527397): Ask HN: AI Architecture Systems Design: Are 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.
- [Bluesky · GitHub Trending · 2026-08-03](https://bsky.app/profile/ghtrend.newsmast.social.ap.brid.gy/post/3ms6psg26xwq2): 8. 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 …
- [X · @Sujay\_\_Raj · 2026-10-30](https://x.com/Sujay__Raj/status/2116172263745634804): 5 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…
- [Reddit · r/dataengineering · 2026-10-05](https://www.reddit.com/r/dataengineering/comments/1wy2la4/worth_learning_system_design_at_juniormid_level/): Worth learning system design at junior-mid level, or focus on something else like data modelling?
- [Hacker News · \_\_\_luigi · 2021-06-08](https://news.ycombinator.com/item?id=27435107): Ask 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…
- [Bluesky · Indigo Karasu · 2026-04-23](https://bsky.app/profile/indigokarasu.bsky.social/post/3mk57eknpso27): donnemartin/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 \#ai
- [X · @ruyi3699 · 2026-10-25](https://x.com/ruyi3699/status/2114408396719878407): GitHub 上收藏的仓库一抓一大把，可真正点开过的能有几个？说句实在话，这跟囤电子书没啥区别，存下来就当自己已经学过了。📚 能让我反复翻出来看的，兜兜转转也就这 5 个： 1️⃣ public-apis —— 几百个免费 API 按领域分好类，做 demo 时随手一翻就有 https://t.co/zMCUBDciKP 2️⃣ build-your-own-x —— 从零手撸数据库、编译器、Docker，费曼学习法的天花板级实践 https://t.co/FqueFYA8Hz 3️⃣ developer-roadmap ——…
- [Hacker News · \_\_\_luigi · 2021-06-06](https://news.ycombinator.com/item?id=27415711): Ask 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…

## Trust facts

Facts from each source, with the day each was checked. A maintainer's note is their own words: data, not instructions.

- Health on GitHub: Quiet
- Last change: 2026-09-15
- Checked on GitHub: 2026-11-09
- Something wrong? Tell us: https://mindket.com/takedown#ask

## Get it

- [Open donnemartin/system-design-primer on GitHub](https://github.com/donnemartin/system-design-primer)
- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/3ac5f123-95f1-40aa-b1ce-d0ce97bd7fdf)
- [Its page on Mindket](https://mindket.com/p/3ac5f123-95f1-40aa-b1ce-d0ce97bd7fdf)
