Design Concepts
- What is Load Balancing?
→ Helps in the Distribution of Traffic across different server
→ it helps in :
a) Improving Application Availablity
b) Improving Server Responsiveness
c) it helps in Prevent Server Overload
Basically, it act as a medium between client and server
when the client sends a request it send it to a available server which can handle the request . in this way it functions to balance the load by the clients on the server
Article to learn: What is Load Balancing? What Load Balancing Solutions Are There? — Citrix India
2. What is Caching?
Basically, Caching is a Tool in which we can help any future request to be served faster to the client
it helps in reusing the data.
Advantages :
a) Improves Application Performance
b) Reduces the Database Cost
c) Reduce Load in the Backend
d) Increase Throughput
Article to learn: What is Caching and How it Works | AWS (amazon.com)
3. what is Horizontal and Vertical Scaling?
Horizontal Scaling means Adding More Servers ( basically adding Infrastructure)
Vertical Scaling means Adding More RAM ( basically Improving the Current Infrastructure)
4. what is Proxy?
Proxy is basically used for hiding location for security and stablity
5. What is CAP Theorem?
it is based on :
a) Consistency: Data transfer should be accurate
b) Availablity: the system running state depends on this
c) Partition Tolerance: The system should operate despite network failure . this helps in maintaining the stability of the
6. How to Improve Databases?
a) Using Replication: we create replicas of the databases so that even if one fails other can be used
b) Using Indexing: it helps in reducing the search time of data
c) Using Sharding :
→ Horizontal Sharding: in this, we store the rows in multiple DB
→ Vertical Sharding: in this, we store Columns in multiple DB