[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10869":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},10869,"system-design-and-architecture","puncsky\u002Fsystem-design-and-architecture","puncsky","Learn how to design large-scale systems. Prep for the system design interview.","https:\u002F\u002Ftianpan.co\u002Fnotes\u002F2016-02-13-crack-the-system-design-interview\u002F",null,"Makefile",3426,670,101,24,0,4,29,1,30.48,false,"master",true,[25,26,27,28,29,30,31,32,33,34],"architecture","design","design-patterns","design-system","development","interview","interview-practice","interview-questions","system-design","web","2026-06-12 02:02:27","\u003Ch1 align=\"center\">System Design and Architecture\u003C\u002Fh1>\n\n> ⚠️ The 2nd Edition is still a work in progress.\n\nThe book *System Design and Architecture* has helped millions of software engineers worldwide to succeed in the Internet industry since 2015. Here is why it works:\n\n1. 🌎 Real-world engineering. It comes from real-world examples of FANNG and many other silicon valley companies. And it outlines how to build real-world Internet products and services.\n2. 🍕 Easy to digest. System design at the right level of abstraction is like a map to route you to your destination with the shortest cut. There are charts, diagrams, and step-by-step guides - all for you to acquire the minimum actionable knowledge to excel system design interviews and get started building.\n3. 🤲 Full-coverage. It strives to be \"the book\" for you to master most of the system design use-cases, from backend to frontend and from zero to hero.\n4. 🚶‍♀️ 4-step framework. This book approaches and solve problems in a systematic and repeatable way: 1) Clarify requirements 2) Sketch out the high-level design 3) Discuss individual components and how they interact with each other 4) Wrap up with blind spots or bottlenecks.\n\nWhat's different in the 2nd Edition? From 2015 to 2022, we saw mobile ate the world, cloud-native computing came across Kubernetes, and web3 went through ups and downs. There are always new companies at different stages of their lifecycles taking the lead in the Internet industry. I am interested in how they work, aren't you? So in the 2nd Edition, I will\n\n* add more interesting content with new companies and products.\n* rewrite existing content with new trends in the industry.\n* add more charts and diagrams with step-by-step guides.\n* add a PDF edition of the book.\n* deduplicate repetitive content so that each design takes its unique abstraction.\n\nWhat is out of this book's scope?\n\n* API design for specific domains. Please go to [Google's API design guide](https:\u002F\u002Fcloud.google.com\u002Fapis\u002Fdesign).\n* Object-oriented design. Its importance is quite overestimated by mediocre engineers.\n\n## How to use this book?\n\n* For professionals (Google L5 or above), go directly to *System Design in Practice*.\n* For junior and intermediate programmers (Google L3\u002FL4), go to *System Design Theories* and then read *System Design in Practice*.\n* For beginners, go to *Prepare for an Interview effectively*, then read *System Design Theories*, and finally go to *System Design in Practice*.\n\n### System Design in Practice\n\n| Product                                                                                                              | Question                                                                                                                             |     |\n| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | --- |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580708936\u002Fweb-guiguio\u002Finstagram.png\" width=\"52\" \u002F>     | [Designing Instagram or Pinterest](.\u002Fen\u002F2016-02-13-crack-the-system-design-interview.md)                                             |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580708917\u002Fweb-guiguio\u002Fuber.png\" width=\"52\" \u002F>          | [Designing Uber](.\u002Fen\u002F120-designing-uber.md)                                                                                         |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709369\u002Fweb-guiguio\u002Ffacebook.png\" width=\"52\" \u002F>      | [How Facebook Scale its Social Graph Store? TAO](.\u002Fen\u002F49-facebook-tao.md)                                                            |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709414\u002Fweb-guiguio\u002Fnetflix.png\" width=\"52\" \u002F>       | [How Netflix Serves Viewing Data?](.\u002Fen\u002F45-how-to-design-netflix-view-state-service.md)                                              |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709444\u002Fweb-guiguio\u002Fstripe.png\" width=\"52\" \u002F>        | [How to design robust and predictable APIs with idempotency?](.\u002Fen\u002F43-how-to-design-robust-and-predictable-apis-with-idempotency.md) |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709414\u002Fweb-guiguio\u002Fnetflix.png\" width=\"52\" \u002F>       | [How to stream video over HTTP for mobile devices? HTTP Live Streaming (HLS)](.\u002Fen\u002F38-how-to-stream-video-over-http.md)              |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709618\u002Fweb-guiguio\u002Fconfluent.png\" width=\"52\" \u002F>     | [Designing a distributed logging system](.\u002Fen\u002F61-what-is-apache-kafka.md)                                                            |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709677\u002Fweb-guiguio\u002Ftwitter.png\" width=\"52\" \u002F>       | [Designing a URL shortener](.\u002Fen\u002F84-designing-a-url-shortener.md)                                                                    |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709990\u002Fweb-guiguio\u002Flinkedin.png\" width=\"52\" \u002F>      | [Designing a KV store with external storage](.\u002Fen\u002F97-designing-a-kv-store-with-external-storage.md)                                  |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709823\u002Fweb-guiguio\u002Fmemcached.png\" width=\"52\" \u002F>     | [Designing a distributed in-memory KV store or Memcached](.\u002Fen\u002F174-designing-memcached.md)                                           |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709369\u002Fweb-guiguio\u002Ffacebook.png\" width=\"52\" \u002F>      | [Designing Facebook photo storage](.\u002Fen\u002F121-designing-facebook-photo-storage.md)                                                     |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580710037\u002Fweb-guiguio\u002Frobinhood.png\" width=\"52\" \u002F>     | [Designing Stock Exchange](.\u002Fen\u002F161-designing-stock-exchange.md)                                                                     |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580710037\u002Fweb-guiguio\u002Frobinhood.png\" width=\"52\" \u002F>     | [Designing Smart Notification of Stock Price Changes](.\u002Fen\u002F162-designing-smart-notification-of-stock-price-changes.md)               |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580710085\u002Fweb-guiguio\u002Fsquare.png\" width=\"52\" \u002F>        | [Designing Square Cash or PayPal Money Transfer System](.\u002Fen\u002F167-designing-paypal-money-transfer.md)                                 |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709444\u002Fweb-guiguio\u002Fstripe.png\" width=\"52\" \u002F>        | [Designing payment webhook](.\u002Fen\u002F166-designing-payment-webhook.md)                                                                   |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580710137\u002Fweb-guiguio\u002Fgrafana.jpg\" width=\"52\" \u002F>       | [Designing a metric system](.\u002Fen\u002F168-designing-a-metric-system.md)                                                                   |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580710354\u002Fweb-guiguio\u002Ftiktok.webp\" width=\"52\" \u002F>       | [Designing a recommendation system](.\u002Fen\u002F140-designing-a-recommendation-system.md)                                                   |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580710222\u002Fweb-guiguio\u002Fairbnb.png\" width=\"52\" \u002F>        | [Designing Airbnb or a hotel booking system](.\u002Fen\u002F177-designing-Airbnb-or-a-hotel-booking-system.md)                                 |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580710390\u002Fweb-guiguio\u002Flyft.png\" width=\"52\" \u002F>          | [Lyft's Marketing Automation Platform -- Symphony](.\u002Fen\u002F178-lyft-marketing-automation-symphony.md)                                   |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580709990\u002Fweb-guiguio\u002Flinkedin.png\" width=\"52\" \u002F>      | [Designing typeahead search or autocomplete](.\u002Fen\u002F179-designing-typeahead-search-or-autocomplete.md)                                 |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580710529\u002Fweb-guiguio\u002Fnginx.jpg\" width=\"52\" \u002F>         | [Designing a Load Balancer or Dropbox Bandaid](.\u002Fen\u002F182-designing-l7-load-balancer.md)                                               |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1580708917\u002Fweb-guiguio\u002Fuber.png\" width=\"52\" \u002F>          | [Fraud Detection with Semi-supervised Learning](.\u002Fen\u002F136-fraud-detection-with-semi-supervised-learning.md)                           |     |\n| \u003Cimg src=\"https:\u002F\u002Fres.cloudinary.com\u002Fdohtidfqh\u002Fimage\u002Fupload\u002Fv1595029150\u002Fweb-guiguio\u002Ffavicon-32x32.png\" width=\"52\" \u002F> | [Designing Online Judge or Leetcode](https:\u002F\u002Ftianpan.co\u002Fnotes\u002F243-designing-online-judge-or-leetcode)                                |     |\n\n### System Design Theories\n\n* [Introduction to Architecture](.\u002Fen\u002F145-introduction-to-architecture.md)\n* [How to scale a web service?](.\u002Fen\u002F41-how-to-scale-a-web-service.md)\n* [ACID vs BASE](.\u002Fen\u002F2018-07-26-acid-vs-base.md)\n* [Data Partition and Routing](.\u002Fen\u002F2018-07-21-data-partition-and-routing.md)\n* [Replica, Consistency, and CAP theorem](.\u002Fen\u002F2018-07-24-replica-and-consistency.md)\n* [Load Balancer Types](.\u002Fen\u002F2018-07-23-load-balancer-types.md)\n* [Concurrency Model](.\u002Fen\u002F181-concurrency-models.md)\n* [Improving availability with failover](.\u002Fen\u002F85-improving-availability-with-failover.md)\n* [Bloom Filter](.\u002Fen\u002F68-bloom-filter.md)\n* [Skiplist](.\u002Fen\u002F69-skiplist.md)\n* [B tree vs. B+ tree](.\u002Fen\u002F2018-07-22-b-tree-vs-b-plus-tree.md)\n* [Intro to Relational Database](.\u002Fen\u002F80-relational-database.md)\n* [4 Kinds of No-SQL](.\u002Fen\u002F78-four-kinds-of-no-sql.md)\n* [Key value cache](.\u002Fen\u002F122-key-value-cache.md)\n* [Stream and Batch Processing Frameworks](.\u002Fen\u002F137-stream-and-batch-processing.md)\n* [Cloud Design Patterns](.\u002Fen\u002F2018-07-10-cloud-design-patterns.md)\n* [Public API Choices](.\u002Fen\u002F66-public-api-choices.md)\n* [Lambda Architecture](.\u002Fen\u002F83-lambda-architecture.md)\n* [iOS Architecture Patterns Revisited](.\u002Fen\u002F123-ios-architecture-patterns-revisited.md)\n* [What can we communicate in soft skills interview?](.\u002Fen\u002F63-soft-skills-interview.md)\n* [Experience Deep Dive](.\u002Fen\u002F2018-07-20-experience-deep-dive.md)\n* [3 Programming Paradigms](.\u002Fen\u002F11-three-programming-paradigms.md)\n* [SOLID Design Principles](.\u002Fen\u002F12-solid-design-principles.md)\n* How to do capacity planning?\n\n### Prepare for an Interview effectively\n\n* Introduction to software engineer interview\n* How to crack the coding interview, for real?\n* How to communicate in the interview?\n* Experience deep dive\n* Culture fit\n* Be a software engineer - a hero's journey\n\n[[Chinese Edition](.\u002Fzh-CN\u002FREADME.md)]\n\n\n\n## Who's Tian Pan?\n\nTian Pan has been a high-performing software engineer and engineering manager working in the San Francisco Bay Area for 10 years, previously worked at Uber, Oracle, IoTeX, and Microsoft.\n\n## Join us for further discussion!\n\n* [Telegram](https:\u002F\u002Ft.me\u002Fsystem_design_and_architecture)\n* [Discord](https:\u002F\u002Fdiscord.gg\u002FPb5YbK3ykN)\n\n---\n## License\n\nGPL v3\n\nIf you found this resource helpful, give it a 🌟 otherwise contribute to it and give it a ⭐️.\n","该项目旨在帮助软件工程师学习大规模系统设计，为系统设计面试做准备。其核心功能包括提供来自FANNG等硅谷公司的实际工程案例分析、易于理解的图表和逐步指南，以及涵盖从前端到后端全面的系统设计方案。项目采用四步框架解决问题：明确需求、勾勒高层设计、讨论组件交互方式及总结潜在问题或瓶颈。适合互联网行业的专业人士、初级至中级程序员以及希望提高系统设计能力的初学者使用，尤其对于准备系统设计面试的人群极为有益。",2,"2026-06-11 03:30:35","top_topic"]