- introduction to system design
- horizontal and vertical scaling
- terminology and steps
- load balancing
- consistent hashing
- message queue
- Microservice and Monolith service
- database sharding
- caching & distributed caching
https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX
interview - https://www.youtube.com/channel/UC9vLsnF6QPYuH51njmIooCQ
https://www.hiredintech.com/classrooms/system-design/lesson/52
https://github.com/donnemartin/system-design-primer
- Scalability: Every system we use today is built to scale. Scalability is a system’s ability to perform under load. Understand the different approaches to cope with the load — Horizontal Scaling and Vertical Scaling.
- Caching: With increasing load, there is an increase in data and fetching from the database every time results in a slow response. Caching improves page load times and can reduce the load on your servers and databases. Read through the caching mechanisms and understand different caching strategies.
- Databases: Understand different storages, Relational Databases, and Non-Relational Databases, and SQL vs. NoSQL. For SQL, go through topics like replication, sharding, functional partitioning, denormalization, and ACID properties. For NoSQL, understand topics like BASE properties, different ways NoSQL data is stored — key-value store, document store, wide column store, or a graph database.
- Load Balancers: When there is an increasing load, we often use load balancers to distribute the load between the resources such as application servers and databases. Understand the different uses of load balancers and the different load balancing strategies available.
- Microservices: Microservice architecture is an application that is deployed as a collection of lightweight and small services. Each service is independent of others and communicates through a well-defined mechanism. While you’re here, read Monolithic vs. Microservice architecture and Service Registry and Discovery.
- Other topics worth reading and learning are — Consistency Patterns, Availability Patterns, CAP theorem, Asynchronous communication mechanisms, long polling, rate limiting, consistent hashing, and Reverse Proxy.