System Design Academy
All at one place, free guide to ace your next distributed system design interview & become a better engineer.
table of contents
master making better architecture and design decisions for scalable, fault-tolerant, and highly available systems.
I'm aiming to have it finished by the end of Dec 2025. Meanwhile, some of the content is already published, check it out. Travis, Avinash & 1340+ others on the waitlist. Stay tuned @systemdesignHQ for early access and updates. Any suggestions? I'm sitting behind systemdesignacademy@gmail.com
Fundamentals of System Design
This section is a quick intro to the basic fundamental concepts of designing distributed systems. These tiny essays will help you better understand the critical concepts of system design.
What is a system design?
Availability
Fault tolerance
CAP theorem
Idempotency
Clock and time in distributed systems
Retry, timeout and backoff strategies
A basic intro to core components
Service Discovery & Heartbeats
Fundamentals of Databases
This section discusses the fundamental concepts of database engineering that every software engineer must be aware of.
Scaling Databases
Database is a hypercritical component of any application to scale. In this section, we will be leveling up our knowledge by understanding various database scaling concepts.
Database Indexing
Database Locking
Database Tuning & Optimizations
Database Replication
Database Partitioning
Designing Database Schema
Data Storages
In this section, we will deep dive & discuss various data storages (databases), their internals and which one to choose, as per the use case.
Embedded Database
Columnar Database
Time Series Database
Graph Database
Offline Database
Blob Storage
File Storage
Internals of Databases
In this advanced section, we will talk about the intresting internals of databases to deeply understand the inner beauty of various databases.