DESIGN_PRINCIPLE

Design a news feed

Design a news feed that provides a user with a list of news items, sorted by approximate reverse chronological order that belong to the topics selected by the user. A news item can be categorized into 1–3 topics. A user may select up to three topics of interest at any time. [...]

2024-08-22T10:38:23+05:30Categories: Programming|Tags: |

Design Airbnb

The question is to design a service for landlords to rent rooms for short-term stays to travelers. This may be both a coding and system design question. A coding discussion will be in the form of coding and object-oriented programming (OOP) solution of multiple classes. This question can be applied to reservation [...]

2024-08-21T11:59:13+05:30Categories: Programming|Tags: |

Design a text messaging app

Let’s design a text messaging app, a system for 100K users to send messages to each other within seconds. Do not consider video or audio chat. Users send messages at an unpredictable rate, so our system should be able to handle these traffic surges. Messages should not be lost, nor [...]

2024-08-20T14:56:13+05:30Categories: Programming|Tags: |

Design a Content Distribution Network

A CDN (Content Distribution Network) is a cost-effective and geographically distributed file storage service that is designed to replicate files across its multiple data centers to serve static content to a large number of geographically distributed users quickly, serving each user from the data center that can serve them fastest. There are [...]

2024-08-19T14:53:38+05:30Categories: Programming|Tags: |

Design Flickr

We design an image sharing service like Flickr. Besides sharing files/images, users can also append metadata to files and other users, such as access control, comments, or favorites. Functional Requirements Let’s discuss user stories with the interviewer and scribble them down: A user can view photos shared by others. We refer [...]

2024-08-19T11:50:08+05:30Categories: Programming|Tags: |

Design Autocomplete

Autocomplete is a useful question to test a candidate’s ability to design a distributed system that continuously ingests and processes large amounts of data into a small (few MBs) data structure that users can query for a specific purpose. An autocomplete system obtains its data from strings submitted by up [...]

2024-08-16T17:16:30+05:30Categories: Programming|Tags: |

Design a Notification Service

Functional requirements There are many possible features that a notification service can provide. Given our limited time, we should clearly define some use cases and features for our notification service that will make it useful to our anticipated wide user base. We will design a service for users to send [...]

2024-08-14T10:59:31+05:30Categories: Programming|Tags: |

Design a rate-limiting service

Rate limiting defines the rate at which consumers can make requests to API endpoints. Rate limiting prevents inadvertent or malicious overuse by clients, especially bots. Examples of inadvertent overuse include the following: Our client is another web service that experienced a (legitimate or malicious) traffic spike. The developers of that service [...]

2024-08-14T09:00:29+05:30Categories: Programming|Tags: |

Design Craigslist – System Design

Craigslist is an example of a typical web application that may have more than a billion users. It is partitioned by geography. User stories We distinguish two primary user types: viewer and poster. A poster should be able to create and delete a post and search their posts as they may [...]

2024-08-13T14:40:56+05:30Categories: Programming|Tags: |
Go to Top