What is System Design?
System Design is the systematic approach that covers a wide range of
engineering concepts and principles for designing scalable systems that are
modular, reusable, and extensible.
Low-Level Design is the process of designing
software components, interfaces, and modules of systems in a modular, reusable,
extensible manner to meet the current/ future needs of any organization.
High-Level Design digs into depth of all related variables, including architecture,
required hardware/software components, how data travels and is stored throughout
the system, and how caching is done to optimize the system for fast response
times and reduced costs, etc. This includes choosing what kind of database to use,
like Cassandra or MySQL or something else, and making choices like SQL vs. NoSQL.