Iterate and Scale
Explore how to iterate and scale system designs focusing on scalability, partitioning methods, load balancing, caching, and the CAP theorem. Understand how to improve high-level designs for reliability and performance to meet technical program manager interview expectations.
It is the most critical phase of system design. Sometimes, the interviewer wants us to focus only on this part.
We have created a high-level design by now, but it may not be scalable and reliable. We are supposed to dip deep into our high-level design and improve, but it is nearly impossible to go into each component in the interview. Sometimes, the interviewer will suggest a particular component they’d like us to expand on. If not, we should expand on the database part.
Scalability
It depends on the context on what and where you are trying to scale, but we will cover topics based on the experience we need in this phase.
Partitioning
Partitioning will be used when we have to scale our database and reduce the response time for clients.
Traditionally, if we store all of the data into one database, it will take a substantial amount of time to look up and query the data. Most people distribute their data among multiple tables to improve responsiveness and for better manageability.
Partitioning divides the big table into multiple parts, but there are many ways to ...