Systems design a procedure by which we define the architecture of a system to satisfy given requirements. It is a technique by which the required amounts of scalability, reliability, performance and consistency are satisfied in real world systems.
We discuss how to start with system design and why it is required. The first concept in designing a system is scalability. We discuss the two main approaches to solve this problem: Horizontal scaling and vertical scaling.
Horizontal scaling is adding more machines to deal with increasing requirements. These machines handle requests in parallel to improve user experience.
Vertical scaling is replacing the current machines with more advanced machines to improve throughput and hence response time. The techniques are used in conjunction in real world systems.
Looking to ace your next interview? Try this System Design video course!
Along with video lectures, this course has architecture diagrams, capacity planning, API contracts and evaluation tests. It’s a complete package.
Use the coupon code ‘earlybird’ for a 20% discount!
Harvard Lecture: />Load balancing: />