system-design-concepts

How to Choose the Right Database?

Databases are a critical component of the world’s most complex technology systems, and how they are used has a significant impact on their…

EnjoyAlgorithms

Throttling and Rate Limiting

What is a Rate Limiter? At its most basic level, a rate limiter restricts the number of events a certain object (person, device, IP, etc…

EnjoyAlgorithms

Peer to Peer Networks in System Design

What is Peer-to-Peer Networks? In the common client-server architecture, multiple clients will communicate with a central server. A peer-to…

EnjoyAlgorithms

Storage and Redundancy

A storage device is a piece of hardware used mostly for data storage. Storage is a mechanism that allows, either temporarily or permanently…

EnjoyAlgorithms

Long Polling in System Design

Whenever we build any Web Application dealing with real-time data, we need to consider delivering data to the Client. While building such a…

EnjoyAlgorithms

Workflow in a Distributed System

Introduction Ever wondered how does 1-click-buy works on Amazon? How does an e-commerce platform show the status of your order after the…

EnjoyAlgorithms

Database Indexing In System Design

Indexing is an excellent way to improve database performance. An index is nothing more than a reference to data in a table. We should think…

EnjoyAlgorithms

Load Balancers in System Design

What are Load Balancers? A load balancer is a software or a hardware device that sits between clients and a set of servers and basically has…

EnjoyAlgorithms

Throughput - System Design Concept

You must have seen how the water comes out of a pipe, right! The flow of water may vary,i.e., sometimes the flow might be less and sometimes…

EnjoyAlgorithms

CAP Theorem in System Design

CAP Theorem is the most important concept used in Distributed Systems. In this blog, we’ll cover all the basic concepts related to the CAP…

EnjoyAlgorithms

SQL vs NoSQL

Have you ever been in a dilemma while choosing the most appropriate storage type for your application? What could be the most viable storage…

EnjoyAlgorithms

Availability: System Design Concept

In this blog, we will learn about the availability of systems. Availability is an important concept that is Involved in most sought-after…

EnjoyAlgorithms

Server Sent Events - System Design Concept

Whenever we build any Web Application dealing with real-time data, we need to consider delivering data to the Client. While building such a…

EnjoyAlgorithms

Proxy Server

In this blog, we will learn about Proxy, an important concept in most sought-after questions in a system design interview. Many of us have…

EnjoyAlgorithms

Consistent Hashing in System Design

This blog discusses the key concepts and approaches which come in handy while scaling out the distributed storage systems. Consistent…

EnjoyAlgorithms

Latency in System Design

Have you ever noticed how water comes out of the pipe? The speed of water coming out of the pipe varies, right! Sometimes water comes out…

EnjoyAlgorithms

Distributed System in System Design

Introduction Nowadays, almost every large scale application is based on distributed computing. Technological expansion and the increasing…

EnjoyAlgorithms

Data Partitioning - System Design Concept

Introduction With the growth in services and user base, it becomes quite difficult for a single server or database to keep functioning…

EnjoyAlgorithms

Network Protocols - System Design Concept

A network can be defined as a group of computers and other devices connected in some ways to exchange data. It is a group of computers that…

EnjoyAlgorithms

Caching - System Design Concept

In this blog, we will learn about Caching, an important fundamental concept in a system’s design. Have you ever experienced that when you…

EnjoyAlgorithms

Subscribe our Newsletter

Get well-designed application and interview centirc content on ds-algorithms, machine learning, system design and oops. Content will be delivered weekly.