systemdesign distributedsystem books systemdesign/concepts
Introduction to System Design
What Is System Design
System design is the process of defining the elements of a system, as well as their interactions and relationships, in order to satisfy a set of specified requirements.
In software engineering, system design is a phase in the software development process that focuses on the high-level design of a software system, including the architecture and components.
Index
Acing the System Design Interview Book
- System Requirements
- Databases
- Netwoking Essentials
Arpit System Design Course Note
Extras
- Robustness Principle (Postel’s Law)
- HyperLogLog
- C4 Model
- Searching Techniques
- N+1 Problem in ORM
- Erasure Coding
System Design Interview Book
Volume 01
- Introduction - First Three Chapters
- Design a Rate Limiter
- DESIGN CONSISTENT HASHING
- Design a Key-Value Store
- DESIGN A UNIQUE ID GENERATOR IN DISTRIBUTED SYSTEMS
- DESIGN A URL SHORTENER
- DESIGN A WEB CRAWLER
- DESIGN A NOTIFICATION SYSTEM
- DESIGN A NEWSFEED SYSTEM
- DESIGN A CHAT SYSTEM
- DESIGN A SEARCH AUTOCOMPLETE SYSTEM
- DESIGN YouTube
- DESIGN Google Drive
Volume 02
- Proximity Service
- Nearby Friends
- Google Maps
- Distributed Message Queue
- Metrics Monitoring and Alerting System
- Aggregate Ad Click Events
- Hotel Reservation System
- Distributed Email Service
- S3-like Object Storage
- Real-time Gaming Leaderboard
- Payment System
- Digital Wallet
- Stock Exchange
System Design Domain Knowledge
System Design Course - Domain Knowledge | Learn from Ex-Google Engineers
Fundamentals of Transactions & Distributed Systems
- Database Transactions (ACID, Practical Applications)
- Database Isolation Levels + Optimistic Locking
- Distributed System Theory
- CAP Theorem & PACELC
- Consensus Algorithms (e.g., Paxos, Raft)
- Distributed Transactions
Geospatial Search
- Introduction to Geospatial Search
- Geohash
- QuadTrees
- Space-Filling Curves (incl. Hilbert Curve)
- Google’s S2 Geometry Library
- Designing a Map Rendering Service
- Review + Mini project (design a local POI finder)
Search Engine Mechanics + File Systems
- Inverted Index basics
- Building a Simple Inverted Index
- ElasticSearch: Core Components
- Advanced Search Applications using ElasticSearch
- File Chunking
- Build a mini search engine + chunking simulation
Media Systems, Security & Probabilistic Data Structures
- Video Transcoding and Playback
- Unique ID Generators
- Security Practices in Software Development
- Bloom Filters (Intro + Advanced Techniques)
- Count-Min Sketch (1 & 2)
- HyperLogLog
- Review + Final Project (Design a system using a probabilistic structure)
Transclude of system-design.base