Aryan Agarwal (@aryankush25) | Scale From Zero To Millions

aryankush25's cover image
Powered by FIFO
aryankush25's image

Aryan Agarwal

Technical Lead | Driving Innovation at Glue Labs | Ex - Software Development Engineer at GeekyAnts Just Learning New Things!! 😉


Design A Notification System

A notification system has already become a very popular feature for many applications in recent years. A notification alerts users with important information like breaking news, product updates, events, offerings, etc. It has become an indispensable part of our daily life.

Design A Web Crawler

A web crawler is known as a robot or spider. It is widely used by search engines to discover new or updated content on the web. A web crawler starts by collecting a few web pages and then follows links on those pages to collect new content.

The following figure shows a visual example of the crawl process.


Design A URL Shortener

In this post, we will tackle an interesting and classic system design approach: designing a URL shortening service like tinyurl.


Design A Unique ID Generator In Distributed Systems

Suppose you are asked to design a unique ID generator in distributed systems. Your first thought might be to use a primary key with the auto_increment attribute in a traditional database.

Design A Key-value Store: Part 2

We'll continue from where we left off in the previous post.

In this post, I will explain the following system components topics:

  • Handling failures
  • System architecture diagram
  • Write path
  • Read path

Design A Key-value Store: Part 1

A key-value store, also referred to as a key-value database, is a non-relational database. Each unique identifier is stored as a key with its associated value. This data pairing is known as a “key-value” pair.

Design Consistent Hashing

To achieve horizontal scaling, it is important to distribute requests/data efficiently and evenly across servers. Consistent hashing is a commonly used technique to achieve this goal. But first, let us take an in-depth look at the problem.

Design A Rate Limiter: Part 2

We'll continue from where we left off in the previous post in this post.

In this post, I'll be covering Step 3 and Step 4.

Sliding window counter algorithm for rate limiting

The sliding window counter algorithm is a hybrid approach that combines the fixed window counter and sliding window log. The algorithm can be implemented by two different approaches.

Sliding window log algorithm for rate limiting

As discussed in the previous post, the fixed window counter algorithm has a major issue: it allows more requests to go through at the edges of a window. The sliding window log algorithm fixes the issue. It works as follows: