A free curated collection of resources for learning Low Level Design and object-oriented design interview prep, covering OOP, design patterns, UML, and concurrency.
donnemartin/system-design-primer
A free, open-source study guide for learning large-scale system design and preparing for system design interviews, with sample solutions and Anki flashcards.
- Stars
- 374,932
- Forks
- 58,922
- Open issues
- 628
- Last commit
- last month
What is it?
The System Design Primer is a structured collection of material for learning how to design large-scale systems. It covers core trade-offs such as performance versus scalability, latency versus throughput, and availability versus consistency, then goes into building blocks including DNS, CDNs, load balancers, reverse proxies, databases (SQL and NoSQL), caching strategies, asynchronous messaging, and communication protocols like TCP, UDP, RPC, and REST.
The project is also aimed at interview preparation. It walks through a step-by-step approach for answering open-ended design questions and provides worked solutions for common prompts such as designing a URL shortener, a Twitter-style timeline, a web crawler, and a social graph. A separate section covers object-oriented design questions with notebook solutions.
Study aids include Anki decks for spaced repetition, and the repository is available in many translations. Its content is contributed to and updated by the open-source community.
Key features
- 01Covers core trade-offs such as CAP, consistency patterns, and availability in numbers
- 02Explains building blocks including load balancers, caching, sharding, and message queues
- 03Provides worked solutions for common system design interview questions
- 04Includes object-oriented design exercises with notebook solutions
- 05Ships Anki flashcard decks for spaced repetition review
Use cases
- Preparing for system design rounds in backend or infrastructure interviews
- Building a foundational understanding of distributed system architecture
- Reviewing trade-offs before designing a scalable service
- Revising key concepts with flashcards during short study sessions
Things to know
- The license could not be determined from the project metadata, so reuse terms are unclear.
Topics
FAQ
- What is system-design-primer?
- A free, open-source study guide for learning large-scale system design and preparing for system design interviews, with sample solutions and Anki flashcards. The System Design Primer is a structured collection of material for learning how to design large-scale systems. It covers core trade-offs such as performance versus scalability, latency versus throughput, and availability versus consistency, then goes into building blocks including DNS, CDNs, load balancers, reverse proxies, databases (SQL and NoSQL), caching strategies, asynchronous messaging, and communication protocols like TCP, UDP, RPC, and REST.
- Is system-design-primer free to use? What license does it have?
- system-design-primer is open source under the Other license. Check the license terms before using it in commercial products.
- Is system-design-primer still maintained?
- Updated within 6 months. The last commit to system-design-primer was on Sep 15, 2026.
- What can I use system-design-primer for?
- Preparing for system design rounds in backend or infrastructure interviews Building a foundational understanding of distributed system architecture Reviewing trade-offs before designing a scalable service Revising key concepts with flashcards during short study sessions
- Where can I get system-design-primer?
- The source code and installation instructions are on GitHub: https://github.com/donnemartin/system-design-primer
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A curated list of 300+ engineering blog articles from companies such as Airbnb, Netflix, Uber and Stripe, grouped by company.
A community-maintained collection of algorithms implemented in Python, intended for learning and education.
A Chinese-language Java backend interview guide covering CS fundamentals, databases, distributed systems, system design and AI application development.
Open-source AI education platform that turns study materials into quizzes, flashcards, Cornell-style notes, and podcasts, inspired by NotebookLM.
A learn-by-building ML course: a from-scratch NumPy deep learning framework (CLI modules) plus 350+ browser-based coding questions graded in Pyodide.