Загрузка страницы

System Design Fundamentals

System Design Fundamentals
Designing an application without knowing design fundamentals is like you are playing a game without knowing the rules. So You can consider design fundamentals as a foundational knowledge for system design. It is as important as data structures for Coding interviews.
Video URL: https://youtu.be/BLy0HHLNY3Q

1. Data Partitioning
It is a technique to divide a large database or table in smaller parts. Or we can say It is the technique of distributing data across multiple tables, disks, or servers.
Video URL: https://youtu.be/mzY4dQDbXSw

2. Data Redundancy & Replications
Data Redundancy means keeping the same data stored at more than one place and Data Replications is the process to synchronize all the data copies.
Video URL: https://youtu.be/DTCE9YFxJos

3. Cache & CDN
Cache plays a very important role to provide low latency. It is a type of temporary and short term memory. A user request travels from Load balancer, web server, application server and Database and many other components in the complex system and Each component takes its own time and that would increase latency with throughput. But when we are using cache then the server would first check if data is available in cache if it is there then request can be fulfilled from cache else it would send request to application server and would return the results.
Video URL: https://youtu.be/mWblIvz8Qew

4. Load Balancing
Load balancer is the most important component of system design, It efficiently distributes incoming requests or throughput across the servers. Load balancer monitors server health to ensure if they can handle requests and if any server goes down, load balancer stops sending new requests to the server and removes unhealthy servers from the pool. similarly if a new server is added in the server pool, then it starts sending requests to it.
Video URL: https://youtu.be/yJErvrV9cAw

5. SQL & NoSQL
Database is the core component of any system. Choosing the database solutions is completely dependent on the use case. We will talk about different database solutions and their importance to choose over another.

Databases are mainly divided in two categories :
1. Relational
2. Non-Relational
Video URL: https://youtu.be/Q6tuJzC8vaI

6. Big Data Solutions
Today we work in a large industry and a lot of open source services and public companies are developing new services day by day. So when we design a large system we don't need to develop all the components again. It would not help us. It would be great if we are using open source or some cloud based services. It would help us to expedite the design process with better product quality.
Video URL: https://youtu.be/S_5wzvaCc1o

7. Hashing & Consistent Hashing
Hashing is the technique of converting an input key into another value. The value is generally named as hash value and the function or method that does this transformation is called Hash function.
Video URL: https://youtu.be/B7t43lOGXEA

8. Application Deployment Strategy
Deploying an application is equally important as it's design and development. Deployment is itself a skill and most of the work is handled by a dev ops Engineer but system design interview is to assess the candidate's ability to build software systems so understanding the software deployment process and different strategies are really important.
Video URL: https://youtu.be/a3egsaec3qY

Видео System Design Fundamentals канала Kamal Sharma
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
4 февраля 2021 г. 10:35:12
00:01:07
Яндекс.Метрика