{"id":48249408,"url":"https://github.com/lebuckman/study-system-design","last_synced_at":"2026-04-04T20:47:33.439Z","repository":{"id":347891907,"uuid":"1167219748","full_name":"lebuckman/study-system-design","owner":"lebuckman","description":"A structured collection of notes and hands-on mini projects from a system design study group.","archived":false,"fork":false,"pushed_at":"2026-03-29T22:51:33.000Z","size":118,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-30T01:04:01.670Z","etag":null,"topics":["computer-science","study-notes","system-design"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lebuckman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-26T04:05:48.000Z","updated_at":"2026-03-29T22:56:05.000Z","dependencies_parsed_at":"2026-03-30T01:04:03.195Z","dependency_job_id":null,"html_url":"https://github.com/lebuckman/study-system-design","commit_stats":null,"previous_names":["lebuckman/study-system-design"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/lebuckman/study-system-design","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebuckman%2Fstudy-system-design","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebuckman%2Fstudy-system-design/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebuckman%2Fstudy-system-design/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebuckman%2Fstudy-system-design/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lebuckman","download_url":"https://codeload.github.com/lebuckman/study-system-design/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebuckman%2Fstudy-system-design/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31413284,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computer-science","study-notes","system-design"],"created_at":"2026-04-04T20:47:32.733Z","updated_at":"2026-04-04T20:47:33.430Z","avatar_url":"https://github.com/lebuckman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# System Design Study Group\n\nA collection of notes, concepts, and hands-on mini projects from a weekly system design study group hosted by [Google Developer Groups On Campus (GDGC)](https://www.instagram.com/gdgcpp/) at Cal Poly Pomona. Each topic folder contains a concept reference and one or more labs — short, runnable projects designed for \"learning by doing.\"\n\n\u003e [!note]\n\u003e The following notes are generally high-level overviews of general system design concepts, and this repo aims to be both a personal reference and a demonstration of such core topics.\n\u003e\n\u003e Diagrams and images used throughout this repo are sourced from their respective owners and are not original unless otherwise noted. Sources are credited inline where images appear.\n\n![Common System Design Components and Request Flow](./repo-figures/system-design.png)\n_Source: [Software Engineer Growth - Quoc Viet Ha](https://www.linkedin.com/pulse/system-design-basic-part-2-common-components-quoc-viet-ha-qwluc/)_\n\n## 🏛️ Core Pillars\n\nEvery system design decision ultimately traces back to one or more of these three goals.\n\n**High Availability** — the system stays operational and accessible as much of the time as possible, even in the face of failures. Achieved through redundancy, replication, failover, and health monitoring. Expressed as uptime percentages — 99.9%, 99.99%, etc.\n\n**High Scalability** — the system can grow to handle increasing load, either vertically (upgrading hardware) or horizontally (adding more machines). Good scalability means growth doesn't require rearchitecting from scratch.\n\n**High Throughput** — the system can process a large number of requests in a given time period. Measured in QPS (queries per second) or TPS (transactions per second). Bottlenecks anywhere in the stack — the network, application layer, or database — can cap throughput regardless of how much hardware you throw at the problem.\n\nThese three goals are intertwined — a well-designed system pursues all three simultaneously, and the strategies that address one often reinforce the others. The tension between them is where most real system design decisions live.\n\n## 📁 Covered Topics\n\n### [Networking](./networking/)\n\nThe foundational layer — how devices communicate, how data is addressed and routed, and the tradeoffs between reliability and speed.\n\n**Concepts:** IP addresses, subnets \u0026 NAT, OSI model (all 7 layers), TCP vs UDP\n\n**Lab:** [`tcp-vs-udp`](./networking/tcp-vs-udp.md) — observe TCP's guaranteed delivery and UDP's silent packet loss side by side\n\n---\n\n### [Load Balancers](./load-balancers/)\n\nHow incoming traffic is distributed across multiple servers to maximize performance, reliability, and scalability, and what happens when servers go down.\n\n**Concepts:** (Weighted) round robin, least connections, IP hashing, health checks, Layer 4 vs Layer 7\n\n**Lab:** [`load-balancer`](./load-balancers/load-balancer.md) — build a working HTTP load balancer in Python with weighted round robin, least connections, and automatic health checks with server recovery\n\n---\n\n### [DNS \u0026 Proxies](./dns-and-proxies/)\n\nHow domain names get resolved to IP addresses, and how proxies intercept and improve that process — making lookups faster, more secure, and more private.\n\n**Concepts:** DNS hierarchy, the 4 DNS server roles, record types, TTL, recursive vs authoritative resolvers, DNS proxies\n\n**Lab:** [`dns-proxy`](./dns-and-proxies/dns-proxy.md) — build a UDP DNS proxy that forwards queries upstream to Cloudflare, caches responses with TTL, and logs cache hits and misses\n\n---\n\n### [CDN, Caching \u0026 Availability](./cdn-caching-availability/)\n\nHow content is delivered fast at global scale, how caching fits into the bigger picture, and how systems stay online when things fail.\n\n**Concepts:** CDN architecture, edge servers, points of presence, CDN vs caching, cache hit/miss ratio, Cache-Control headers, TTL, cache invalidation, eviction strategies (LRU/LFU/FIFO), high availability, failover, DDoS protection\n\n**Lab:** [`cache-simulator`](./cdn-caching-availability/cache-simulator.md) — simulate CDN edge cache behavior across cold start, warm cache, manual invalidation, and TTL expiry with hit ratio tracking\n\n---\n\n\u003e 🚧 More topics coming soon.\n\n## 🧱 Foundational Concepts\n\nSmaller concepts that came up across sessions and are covered within the most relevant topic folder rather than having their own dedicated space.\n\n| Concept                                    | Covered In                                                 |\n| ------------------------------------------ | ---------------------------------------------------------- |\n| IP addresses, public vs private, ports     | [Networking](./networking/)                                |\n| Subnets \u0026 NAT                              | [Networking](./networking/)                                |\n| OSI model — all 7 layers                   | [Networking](./networking/)                                |\n| TCP vs UDP                                 | [Networking](./networking/)                                |\n| DNS record types \u0026 TTL                     | [DNS \u0026 Proxies](./dns-and-proxies/)                        |\n| Cache-Control headers                      | [CDN, Caching \u0026 Availability](./cdn-caching-availability/) |\n| Cache eviction strategies (LRU, LFU, FIFO) | [CDN, Caching \u0026 Availability](./cdn-caching-availability/) |\n| High availability \u0026 uptime nines           | [CDN, Caching \u0026 Availability](./cdn-caching-availability/) |\n\n## ⚡ Getting Started\n\nEach folder contains a `README.md` discussing the respective topic, and each lab has its own markdown file with setup instructions, expected output, etc.\n\nAll labs are written in Python 3 with minimal dependencies. Any additional setup will be outlined in the lab's markdown file.\n\n```bash\ncd \u003ctopic-folder\u003e\npython3 \u003cfilename\u003e.py\n```\n\n## 📚 Key Resources\n\nResources for going deeper on system design beyond this repo:\n\n- [System Design Primer](https://github.com/donnemartin/system-design-primer) — open-source reference to prep for system design interview\n- [AlgoMaster (System Design)](https://algomaster.io/) — structured course with interview-focused breakdowns\n- [ByteByteGo](https://bytebytego.com/guides/cloud-distributed-systems/) — visual system design guides and courses by authors of System Design Interview books\n- [Cloudflare Learning Center](https://www.cloudflare.com/learning/) — resources on cybersecurity and Internet concepts\n- [High Scalability](http://highscalability.com/) — a blog or resource hub dedicated to the art, science, and practice of building highly scalable websites and systems\n- [MDN Web Docs (HTTP)](https://developer.mozilla.org/en-US/docs/Web/HTTP) — comprehensive HTTP reference\n- [Designing Data-Intensive Applications](https://dataintensive.net/) — go-to book for deep dives into distributed systems, databases, and data engineering\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flebuckman%2Fstudy-system-design","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flebuckman%2Fstudy-system-design","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flebuckman%2Fstudy-system-design/lists"}