As users type their search query, the Typeahead search feature guesses the rest of a word and offers the top suggestions that begin with whatever they have written. Here frequency and recentness of a query are used to sort suggestions. Search autocomplete system is used by many search platforms like Facebook, Google, Instagram, etc.
A key-value database is a non-relational database that stores data using a simple key-value mechanism. Data is stored in a key-value database to collect key-value pairs, with a key serving as a unique identifier. Both keys and values can be any object (simple or complex objects). This blog will focus on system design of key value store and discussion around various components.
Google docs is an online word processor that is part of Google’s free, web-based Google docs editors package. It is a massive system with tons of features. If we think about how google docs works, we can realize that it is much more complex than it seems to be. This blog will focus on system design of google docs and discussion around various components.
Whatsapp is a social messenger platform, which allows users to send messages to each other. It is a messaging system that is widely used throughout the globe. Here in this blog, we’ll be discussing WhatsApp’s generic architecture and which could also be used as a base for designing any such chat application. So let’s get started by discussing the key requirements of our service.
A web crawler is a system for downloading, storing, and analyzing web pages. It is one of the main components of search engines that compile collections of web pages, index them, and allow users to issue index queries and find web pages that match queries. This blog will focus on system design of web crawler and discussion around various components.
Twitter is a social media platform where users can post and interact with tweets. Users can also subscribe to feeds of other users and receive tweet notifications from those they follow. Tweets are almost 140–280 characters communication. This blog will focus on system design of Twitter and discussion around various components.
Instagram is a photo and video-sharing social media platform that allows users to share their creations with others. The original poster can set the visibility of these posts (photos/videos) to private or public. Posts can be liked and commented on by users. Users can follow and see the news feeds of other users (a collection of posts from the users they are following).
The least recently used (LRU) cache is one of the popular caching strategies, which defines the policy to discard the least recently used items first from the cache and make room for new elements when the cache is full. It is used to organize items in order of their use, which allows identifying items that have not been used for a long time.
The least frequently used (LFU) is a cache algorithm used to manage memory within a computer. In this method, the system keeps track of the number of times a block is referenced in memory, and when the cache is full, our system removes the item with the lowest reference frequency. LFU cache get and put operation works in O(1) average time complexity.
Bloom filter is a space-efficient data structure that tells whether an element may be in a set (either a false positive or true positive) or definitely not present in a set (True negative). It will take O(1) space, regardless of the number of items inserted. However, their accuracy decreases as more elements are added.
Rate limiter restricts number of events a certain user or device can do in a given time range. In general, rate limiting helps us to restrict number of requests a sender can send in a given period of time and is implemented as a protective mechanism to restrict excessive use of services. Once the upper limit is reached, rate limiter blocks requests.
YouTube is a frequently used social networking platform for video sharing and advertising. It is a widely used service, our system should be cost-efficient, highly available, scalable, and reliable. It should offer low latency and high throughput. This blog will focus on system design of youtube and discussion around various components.
Dropbox is a cloud storage service that allows users to store their data on remote servers. The remote servers store files durably and securely, which can be accessed from anywhere using the internet. These servers are maintained by cloud storage providers. In this blog, we will focus on system design of dropbox and discussion around various components.
Notification services are widely used in almost every product. They are helpful if we want to be alerted of a price change or availability of a new product feature or if we want to be updated if a new job specification for a job search becomes available. This blog will focus on system design of notification service and discussion around various components.
Design nearby friends service like yelp, where users can search for nearby places like restaurants, shopping malls, etc., and add/view reviews of places. Service should store location information so that it delivers a list of places near the user after a query is made. This blog will focus on system design of yelp and discussion around various components.
QR code payment is one of the contactless payment methods to transfer funds from the buyer’s wallet to the seller’s wallet or account. Here QR code is based on a matrix barcode, which can be read by any mobile device with a camera. This blog will focus on how to design QR code payemnt system and discussion around various components.
Uber continues to improve its operations by deploying and developing new services to meet market demand, finding the most efficient routes, detecting any potential fraud, and monitoring data to provide the most efficient real-time services. This blog will focus on system design of uber and discussion around various components and functionalities.
How does 1-click-buy work on Amazon? How e-commerce platforms show the status of order? What happens when we cancel an order after placing an order or after item is shipped or delivered? How is all the activity related to an order tied to just one order Id? This blog will lay out key insights on designing a workflow for such distributed systems.
TinyURL is a URL-shortening system that creates shorter aliases for long URLs. Whenever a user visits the short URL, they will be redirected to the original URL. Our goal is to design a highly scalable service that could allow users to create shorter URLs from long URLs. This blog focus on TinyURL system design and discussions around various components.
Subscribe to get weekly content on data structure and algorithms, machine learning, system design and oops.