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.

System Design Roadmap
System Design Primer

Index

Acing the System Design Interview Book

  1. System Requirements
    1. 02 - Scalability
    2. 03 - Availability
    3. 04 - Fault-Tolerance
    4. 05 - Latency and Throughput
    5. 06 - Consistency
    6. 07 - Accuracy
    7. 08 - Complexity and Maintainability
    8. 09 - Cost
    9. 10 - Security and Privacy
  2. Databases
    1. ACID Principles
    2. CAP Theorem
    3. Row-Based and Column-based Database
    4. Redis
    5. DynamoDB
    6. Cassandra
  3. Netwoking Essentials
    1. HTTP
    2. QUIC Protocol
    3. Server Sent Events

Arpit System Design Course Note

Extras

System Design Interview Book

Volume 01

Volume 02

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
  • 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