This template serves as a list of things that can be discussed during the interview.
Keep it handy. โจ
Here is a brief introduction of some of the components involved:
๐๐ฃ๐ ๐๐ฎ๐๐ฒ๐๐ฎ๐ An API Gateway (AG) is a server that acts as a single point of entry for a set of #microservices. AG receives client requests, forwards them to the appropriate microservice, and then returns the server's response to the client. AG is responsible for tasks such as routing, authentication, and rate limiting.
๐๐๐ก A Content Delivery Network (CDN) is a distributed network of servers that are deployed in multiple locations around the world. These servers are designed to deliver web content, such as images, videos, and other static files, to users based on their geographical location. The main purpose of a #cdn is to improve the performance and availability of web content by caching it on servers that are closer to the users who are requesting it.
๐๐ฎ๐๐ฎ ๐ฃ๐ฎ๐ฟ๐๐ถ๐๐ถ๐ผ๐ป๐ถ๐ป๐ด In a database, ๐ต๐ผ๐ฟ๐ถ๐๐ผ๐ป๐๐ฎ๐น ๐ฝ๐ฎ๐ฟ๐๐ถ๐๐ถ๐ผ๐ป๐ถ๐ป๐ด, also known as sharding, involves dividing the rows of a table into smaller tables and storing them on different servers or database instances. This is done to distribute the load of a database across multiple servers and to improve performance.
On the other hand, ๐๐ฒ๐ฟ๐๐ถ๐ฐ๐ฎ๐น ๐ฝ๐ฎ๐ฟ๐๐ถ๐๐ถ๐ผ๐ป๐ถ๐ป๐ด involves dividing the columns of a table into separate tables. This is done to reduce the number of columns in a table and to improve the performance of queries that only access a small number of columns.
๐๐ถ๐๐๐ฟ๐ถ๐ฏ๐๐๐ฒ๐ฑ ๐บ๐ฒ๐๐๐ฎ๐ด๐ถ๐ป๐ด ๐๐๐๐๐ฒ๐บ๐ These are used to send messages between distributed components of a system. Examples include Apache #kafka and #rabbitmq.
๐๐ถ๐๐๐ฟ๐ถ๐ฏ๐๐๐ฒ๐ฑ ๐ณ๐ถ๐น๐ฒ ๐๐๐๐๐ฒ๐บ๐ These are file systems that are designed to store and manage files across a group of servers.
๐ก๐ผ๐๐ถ๐ณ๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป๐ ๐๐๐๐๐ฒ๐บ These are used to send notifications or alerts to users, such as emails, push notifications, or text messages.
๐๐๐น๐น-๐๐ฒ๐ ๐ ๐๐ฒ๐ฎ๐ฟ๐ฐ๐ต Full-text search enables users to search for specific words or phrases within an app or website. When a user queries, the app or website returns the most relevant results. To do this quickly and efficiently, full-text search relies on an inverted index, which is a data structure that maps words or phrases to the documents in which they appear.
Ref: โ System Design Survival Guide (2023): https://lnkd.in/deqz6gnz โ Take a look at ๐๐ฟ๐ผ๐ธ๐ธ๐ถ๐ป๐ด ๐๐ต๐ฒ ๐ฆ๐๐๐๐ฒ๐บ ๐๐ฒ๐๐ถ๐ด๐ป ๐๐ป๐๐ฒ๐ฟ๐๐ถ๐ฒ๐ for #systemdesign#interview questions - https://lnkd.in/g4Wii9r7 โ For software architecture, take a look at ๐๐ฟ๐ผ๐ธ๐ธ๐ถ๐ป๐ด ๐๐ต๐ฒ ๐๐ฑ๐๐ฎ๐ป๐ฐ๐ฒ๐ฑ ๐ฆ๐๐๐๐ฒ๐บ ๐๐ฒ๐๐ถ๐ด๐ป ๐๐ป๐๐ฒ๐ฟ๐๐ถ๐ฒ๐ - https://lnkd.in/dyCRtiec
I've used this template to discuss many #systemdesign problems in #interviews.
This template serves as a list of things that can be discussed during the interview.
Keep it handy. โจ
Here is a brief introduction of some of the components involved:
๐๐ฃ๐ ๐๐ฎ๐๐ฒ๐๐ฎ๐
An API Gateway (AG) is a server that acts as a single point of entry for a set of #microservices. AG receives client requests, forwards them to the appropriate microservice, and then returns the server's response to the client. AG is responsible for tasks such as routing, authentication, and rate limiting.
๐๐๐ก
A Content Delivery Network (CDN) is a distributed network of servers that are deployed in multiple locations around the world. These servers are designed to deliver web content, such as images, videos, and other static files, to users based on their geographical location. The main purpose of a #cdn is to improve the performance and availability of web content by caching it on servers that are closer to the users who are requesting it.
๐๐ฎ๐๐ฎ ๐ฃ๐ฎ๐ฟ๐๐ถ๐๐ถ๐ผ๐ป๐ถ๐ป๐ด
In a database, ๐ต๐ผ๐ฟ๐ถ๐๐ผ๐ป๐๐ฎ๐น ๐ฝ๐ฎ๐ฟ๐๐ถ๐๐ถ๐ผ๐ป๐ถ๐ป๐ด, also known as sharding, involves dividing the rows of a table into smaller tables and storing them on different servers or database instances. This is done to distribute the load of a database across multiple servers and to improve performance.
On the other hand, ๐๐ฒ๐ฟ๐๐ถ๐ฐ๐ฎ๐น ๐ฝ๐ฎ๐ฟ๐๐ถ๐๐ถ๐ผ๐ป๐ถ๐ป๐ด involves dividing the columns of a table into separate tables. This is done to reduce the number of columns in a table and to improve the performance of queries that only access a small number of columns.
๐๐ถ๐๐๐ฟ๐ถ๐ฏ๐๐๐ฒ๐ฑ ๐บ๐ฒ๐๐๐ฎ๐ด๐ถ๐ป๐ด ๐๐๐๐๐ฒ๐บ๐
These are used to send messages between distributed components of a system. Examples include Apache #kafka and #rabbitmq.
๐๐ถ๐๐๐ฟ๐ถ๐ฏ๐๐๐ฒ๐ฑ ๐ณ๐ถ๐น๐ฒ ๐๐๐๐๐ฒ๐บ๐
These are file systems that are designed to store and manage files across a group of servers.
๐ก๐ผ๐๐ถ๐ณ๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป๐ ๐๐๐๐๐ฒ๐บ
These are used to send notifications or alerts to users, such as emails, push notifications, or text messages.
๐๐๐น๐น-๐๐ฒ๐ ๐ ๐๐ฒ๐ฎ๐ฟ๐ฐ๐ต
Full-text search enables users to search for specific words or phrases within an app or website. When a user queries, the app or website returns the most relevant results. To do this quickly and efficiently, full-text search relies on an inverted index, which is a data structure that maps words or phrases to the documents in which they appear.
Ref:
โ System Design Survival Guide (2023): https://lnkd.in/deqz6gnz
โ Take a look at ๐๐ฟ๐ผ๐ธ๐ธ๐ถ๐ป๐ด ๐๐ต๐ฒ ๐ฆ๐๐๐๐ฒ๐บ ๐๐ฒ๐๐ถ๐ด๐ป ๐๐ป๐๐ฒ๐ฟ๐๐ถ๐ฒ๐ for #systemdesign #interview questions - https://lnkd.in/g4Wii9r7
โ For software architecture, take a look at ๐๐ฟ๐ผ๐ธ๐ธ๐ถ๐ป๐ด ๐๐ต๐ฒ ๐๐ฑ๐๐ฎ๐ป๐ฐ๐ฒ๐ฑ ๐ฆ๐๐๐๐ฒ๐บ ๐๐ฒ๐๐ถ๐ด๐ป ๐๐ป๐๐ฒ๐ฟ๐๐ถ๐ฒ๐ - https://lnkd.in/dyCRtiec