Latest posts

  • System Design: News Feed System

     “News feed is the constantly updating list of stories in the middle of your home page. News Feed includes status updates, photos, videos, links, app activity, and likes from people, pages, and groups that you follow”. News feed is the main highlight of social media applications. In this post we’ll learn how to design News…

    Read more

  • System Design: Notification System

    Notifications in digital products should never detract from the user experience. Their purpose should be to contribute to people’s understanding that helps them achieve their goals. A notification alerts users to relevant information like important news, updates, events, etc. It has become an essential part of our daily lives. In this post we’ll learn how to design a…

    Read more

  • System Design: Web Crawler

    A web crawler, spider, or search engine bot downloads and indexes content from all over the Internet. The goal of such a bot is to learn what (almost) every webpage on the web is about, so that the information can be retrieved when it’s needed. They’re called “web crawlers” because crawling is the technical term…

    Read more

  • System Design: URL Shortener

    You must have come across URL shortener such as tinyurl, shorturl, bitly etc. In this post we’ll understand how these tools internally work and how can we design a URL shortener. We’ll be using all the concepts that we discussed in the previous posts.  Requirements:    Convert long URL into short URL URL Redirecting from Short…

    Read more

  • System Design: Unique ID Generator

    In this article we are going to talk about designing a unique ID generator for distributed systems.  Unique ID Generator we are going to design will have following characteristis:  IDs will only consist numerical values IDs must fit in 64-bit IDs should be ordered by date System should be able to generate 10k IDs/second Various…

    Read more

  • System Design: Key Value Store

    Key Value Store or Key Value Database Is is a non-relational database where each unique identifier is stored as a key with its associated value, data as stored as key-value pairs. Both key and value can be of any object type ranging from simple to complex compound objects.Key must be unique in a key value…

    Read more

  • System Design : Consistent Hashing

    Consistent hashing is an important concept one should understand in order work with scalable system. Consistent hashing is used for distributing traffic evenly across servers. Lets understand in this article what consistent hashing is and how to design it. Rehashing Problem Consistent Hashing is a distributed hashing scheme that operates independently of the number of…

    Read more

  • System Design: Design A Rate Limiter

    What is a rate limiter/ rate limiting? Rate limiting is used to block the computer network or limiting the network traffic. It puts a threshold on how often a particular action be repeated by someone. For example: In Telegram and Discord you have the option to limit the number of messages a person can send…

    Read more

  • System Design: Getting Started

    Understanding Relational and Non-Relational Databases If you’re planning to build a complex network you need to first start small one step at a time. To start small something simple we will talk about single server setup in this post. Request flow from User to the web server: As the scale of your service or application…

    Read more