Sitemap
Kirandeep

Kirandeep

2 min readOct 25, 2026

--

What is System Design

When we start learning software development, most of our focus is on writing code, fixing bugs, and making things work.

But as applications grow, we realize that writing good code is only one part of building a good system.

This is where System Design comes into the picture.

In simple terms, system design is about planning how different components of an application work together to solve a problem.

Let’s take a simple example.

Imagine you’re building an online shopping application.

Initially, you might have a few hundred users. A single server and database could be enough.

But what happens when your application starts receiving millions of requests?

  • How will you handle increased traffic?
  • What happens if a server goes down?
  • How do you prevent the database from becoming a bottleneck?
  • How will you make sure users don’t lose their orders?
  • How do you keep the application fast and reliable?

These are the kinds of questions system design helps us answer.

Get Kirandeep’s stories in your inbox

Join Medium for free to get updates from this writer.

System Design is generally divided into two parts:

1. High-Level Design (HLD)

Focuses on the overall architecture, such as services, databases, caching, load balancers, and communication between components.

2. Low-Level Design (LLD)

Focuses on the internal implementation, including classes, interfaces, design patterns, and interactions between objects.

One thing I’ve realized while working on enterprise applications is that there is rarely a perfect design. Every design involves trade-offs.

Sometimes we prioritize performance, sometimes consistency, and sometimes simplicity.

The important part is understanding why we choose one approach over another.

I’m starting a series where I’ll share my understanding of system design, from the fundamentals to real-world architecture and interview scenarios.

I’ll also share practical examples along the way.

Because understanding how a system works is just as important as knowing how to write the code behind it.

What was the most challenging system design problem you’ve faced in your projects?

--

--