System Design Master Template - rnakidi/dsa GitHub Wiki

๐—ฆ๐˜†๐˜€๐˜๐—ฒ๐—บ ๐——๐—ฒ๐˜€๐—ถ๐—ด๐—ป ๐— ๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ ๐—ง๐—ฒ๐—บ๐—ฝ๐—น๐—ฎ๐˜๐—ฒ to rule all system design interviews โœจ Keep it handy. โœจ

You can use this template to discuss many hashtag#systemdesign problems in hashtag#interviews.

๐—”๐—ฃ๐—œ ๐—š๐—ฎ๐˜๐—ฒ๐˜„๐—ฎ๐˜† An API Gateway (AG) is a server that acts as a single point of entry for a set of hashtag#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 hashtag#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 hashtag#kafka and hashtag#rabbitmq.

๐——๐—ถ๐˜€๐˜๐—ฟ๐—ถ๐—ฏ๐˜‚๐˜๐—ฒ๐—ฑ ๐—ณ๐—ถ๐—น๐—ฒ ๐˜€๐˜†๐˜€๐˜๐—ฒ๐—บ๐˜€ These are file systems that are designed to store and manage files across a group of servers.

๐—™๐˜‚๐—น๐—น-๐˜๐—ฒ๐˜…๐˜ ๐˜€๐—ฒ๐—ฎ๐—ฟ๐—ฐ๐—ต 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 hashtag#systemdesign hashtag#interview questions - https://lnkd.in/g4Wii9r7 โœ…For software architecture, take a look at ๐—š๐—ฟ๐—ผ๐—ธ๐—ธ๐—ถ๐—ป๐—ด ๐˜๐—ต๐—ฒ ๐—”๐—ฑ๐˜ƒ๐—ฎ๐—ป๐—ฐ๐—ฒ๐—ฑ ๐—ฆ๐˜†๐˜€๐˜๐—ฒ๐—บ ๐——๐—ฒ๐˜€๐—ถ๐—ด๐—ป ๐—œ๐—ป๐˜๐—ฒ๐—ฟ๐˜ƒ๐—ถ๐—ฒ๐˜„ - https://lnkd.in/dyCRtiec

image

Source/Credit: https://www.linkedin.com/posts/tauseeffayyaz_systemdesign-interviews-microservices-activity-7276289326563348480-uKdy?utm_source=share&utm_medium=member_desktop