September 23, 2018

System Design

Learn how to design large-scale systems. System design is a broad topic and there is a vast amount of resources scattered on the web. The idea of this repository is to organize a collection of good material about the subject.

What've learnt so far?

Step 1: Review the scalability video lecture

DATE: 2018/09/23

Scalability Lecture at Harvard

Topics covered:

Vertical scaling
Horizontal scaling
Load balancing
Database replication
Database partitioning 

Summary: Axel is a hell of a good student. LOL. If you watch, you'll understand. Any of the content of this class was completely new to me, however the point the professor was trying to show is very valid. You started with a problem related to scalability and all of the sudden you have this increasingly amount of problems to deal with. The bottom line here is the good'old there is no free lunch theorem. The walk through how load balancing works was very nice and I want to see the previous lectures where he explains in more detail how the DNS routing works.

  • Avoid complexity
  • Pay attention to single point of failures
  • Work with redundancy
  • Horizontal scaling comes with a good price to pay
  • When you are done, look for some free-optiomizations such as compiling your code, memory caching...
  • Hire Axel!
Tags: course