Learning System Design

 Youtube, books, tutorials, and blogs are all great sources of learning about System Design. In this series of blog posts, I will primarily be learning from Yogita Sharma and Gaurav Sen.


In Introduction to System Design | System Design Tutorials | Part 1 | 2020 - Yogita Sharma describes System Design as: "Architecture or series of technologies -> that serve a set of users -> to fulfil a set of requirements". 

What is a System?

  • Real world systems include hotels, hospitals, train stations, etc.
  • Computing systems include WhatsApp, Snapchat, Netxlifx, etc. 
  • Components of real world systems include: walls, ceiling & floor, electrical systems, water supply, lighting, heating systems, etc.
  • Components of computing systems include: databases, servers, caches, applications, message queues, etc.

What is Design?

  • Understanding the needs of the users
  • Selecting the right components
  • Working within constraints
  • The combination of the above is what makes up design
  • Design of two story building and skyscraper will be different, even though similar components may be used.
  • Being able to scale systems is why System Design as a discipline has evolved
System Design
  • Designing large scale systems is done by a team 
  • It requires understanding of the components, their strengths and weaknesses
  • What the trade offs are and when to best use each component
  • How to build a system that scales well within specific constraints

Yogita's YouTube course is about looking at each component, their strengths and weaknesses. Then to combine them and build large scale computing systems.




No comments:

Post a Comment