← All videos

Engineering video

40:51 · 29 October 2026

15 System Design Concepts Every Senior Engineer Should Know

Chapters 16 sections

  1. 0:00Intro
  2. 0:261. Load balancing
  3. 2:442. Caching: HTTP, CDN and Redis
  4. 6:093. API Design: REST vs GraphQL vs tRPC

Key concepts in this video:

1. Load Balancing

Distributing incoming traffic evenly across multiple stateless servers using algorithms like round robin, least frequency, or least connection to avoid server overload and expensive vertical scaling.

Watch section from 0:16 →

2. Caching

Storing pre-calculated data or static assets closer to the user or server via HTTP caching, CDNs, and in-memory tools like Redis to minimize database load and reduce latency.

Watch section from 2:40 →

3. API Design

Standardizing client-server communication using architectural styles such as REST, GraphQL, and gRPC, balancing flexibility, over-fetching, and cacheability.

Watch section from 6:13 →

4. Rate Limiting

Protecting APIs from malicious traffic and bots by tracking request frequency per client using fixed window or token bucket algorithms, rejecting excess requests with a 429 status.

Watch section from 10:18 →

5. CAP Theorem

The principle stating that distributed systems can only provide two of three guarantees: consistency, availability, and partition tolerance, forcing architectural trade-offs.

Watch section from 13:41 →

6. SQL versus NoSQL

Choosing between relational databases with strong schemas and non-relational document stores optimized for easy distribution and horizontal scalability.

Watch section from 15:49 →

7. Database Indexing

Using data structures like B-trees under the hood to speed up read queries from linear search time complexity down to logarithmic time complexity.

Watch section from 17:41 →

8. Database Replication

Scaling database reads by creating read-only replicas alongside a primary write database, utilizing synchronous or asynchronous propagation based on CAP trade-offs.

Watch section from 19:32 →

9. Consistency Models

Defining how consistent data is across nodes through models such as strong consistency, eventual consistency, and read-your-writes.

Watch section from 22:11 →

10. Database Sharding

Partitioning large datasets into smaller subsets across different locations or database servers using a directory lookup or router component.

Watch section from 25:23 →

11. Consistent Hashing

Hashing record IDs onto a circular space mapped to shards to minimize data reallocation and cache busting when adding or removing database shards.

Watch section from 27:16 →

12. Real-Time Communication

Enabling live data flows using polling, server-sent events for one-way streaming like LLM outputs, or WebSockets for bidirectional communication like chat apps.

Watch section from 31:02 →

13. Microservices

Splitting large monolithic applications into smaller, independently deployable services to handle asymmetrical traffic, resource requirements, and technology stacks.

Watch section from 32:55 →

14. Event-Driven Architectures

Decoupling microservices by using a central event hub or stream like Kafka where services publish and listen for actions asynchronously rather than making direct compound calls.

Watch section from 36:08 →

15. Idempotency

Preventing duplicate actions or double charges during network retries by attaching a unique client-generated idempotency key to requests.

Watch section from 38:14 →

Transcript

So, those are the 15 most important concepts that you need to know in order to excel at system design. So, we're going to talk about things like load balancing, caching, rate limiting, the CAP theorem, database replication, database sharding, and architecture styles like microservices and event-driven. And then we'll also dive deeper into more complex topics for the senior level like consistent hashing and rate limiting. So, let's start with number one, load balancing. And load balancing is very useful whenever there's a lot of pressure on one of your servers. So, you got all these users making requests and this server right here is becoming overloaded. Now, of course, we could just buy a bigger hardware, but that would be number one expensive and it's not very flexible.