Updated on 03 Oct, 202514 mins read 9 views

When people talk about HLD (High-Level Design) in system design interviews, blogs, or courses, they mostly focus on web applications or mobile applications – things like e-commerce systems, video streaming, social networks, etc.

But what about traditional offline software like AutoCAD, Winamp, MS Paint, or even classic desktop games? Why don't we see HLD diagrams for them?

We will understand about this in detail in this article.

What is High-Level Design (HLD)?

High-Level Design is about the big-picture architecture of a system. Instead of focusing on code-level details, it looks at:

  • System components (services, databases, APIs, caches, queues, etc.)
  • Interactions between components
  • Scalability and availability
  • Deployment structure
  • Non-functional requirements (NFRs) like scalability, availability, reliability, fault tolerance, latency, and throughput.

In short:

HLD is about how multiple parts of a distributed system work together.

If we keep things very simplified, then we can group software into three broad types that are easy to understand:

1 Web Applications

  • Runs inside a browser
  • Require internet + server interaction.
  • Examples: www.thejat.in

2 Mobile Applications

  • Runs on smartphone or tablets
  • Installed via app stores.
  • Can be native apps (Android/iOS), hybrid apps, or progressive web apps (PWAs).
  • Examples: WhatsApp, Instagram, Spotify.

3 Offline (Desktop/Standalone) Software

  • Runs locally on a personal computer or device
  • Does not require internet (though many now add optional online features)
  • Examples: MS Paint, AutoCAD, Photoshop (offline mode), VLC, traditional PC games.

These three are like the main buckets of how most people experience software today. Other categories (like enterprise software, embedded software, system software) exist, but they often overlap with these three or belong to a more technical classification.

Why Web/Mobile Apps Need HLD

Web and mobile applications are distributed by nature. A single user action often involves:

  • Servers
  • Databases
  • Caches
  • Load balancers
  • CDNs
  • Message queues

For example:

  • Logging into WhatsApp involves authentication services, databases, and caching.
  • Watching Netflix involves CDNs, streaming servers, and transcoding pipelines.

Since these app runs across multiple machines and must serve millions of users simultaneously, they absolutely require HLD to ensure scalability, fault tolerance, and efficiency.

Traditional Offline Software Is Mostly Self-Contained

Now think about classic offline software:

  • MS Paint, AutoCAD, Photoshop (offline mode), Winamp, video games (before online play).
  • All the functionality lives inside the user's machine.
  • Editing a drawing, listening to music, or playing a game doesn't require servers or distributed services.

The challenges here are different:

  • Algorithms (rendering, graphics, sound processing, compression)
  • Performance (CPU/GPU usage, memory handling, low-latency response)
  • UI/UX architecture (menus, workflows, shortcuts)
  • File compatibility (support for multiple formats)

This is less about distributed system design (HLD) and more about software architecture or low-level design (LLD).

image-577.png

Why HLD Applies to All Complex Systems

The perception that HLD is only for web/mobile is actually misleading. HLD principles apply to any complex system, including:

1 Embedded Systems

Example: Automotive control systems

HLD concerns: Real-time processing, sensor data flow, safety-critical components, hardware-software interface

2 Scientific Computing

Example: Weather simulation software

HLD Concerns: Data pipeline design, computational resource allocation, result aggregation

3 Enterprise Systems

Example: Banking core systems

HLD Concerns: Transaction processing, data consistency, integration with legacy systems, compliance requirements

4 Game Engines

Example: AAA game development

HLD Concerns: Rendering pipeline, asset management, physics engine architecture, networking layer

5 Operating Systems

Example: Linux kernel

HLD Concerns: Process scheduling, memory management, device driver interfaces, security models.

 

Buy Me A Coffee

Leave a comment

Your email address will not be published. Required fields are marked *