Skip to main content

HLD Basics

What is HLD - High Level Design?

High-Level Design (HLD) outlines the system’s architecture and key components. It describes how different modules interact, data flow between them, and decisions like using microservices, databases, APIs, and external systems.

HLD acts as a bridge between requirements and low-level implementation, helping stakeholders and developers understand the overall system design before diving into code.

1. Client-Server Architecture

A client is a device or software that requests services or data from a server. A server is a device or software designed to handle requests and serve response to a client.

info

Any system or machine that is sending the request will be the client. The one that is responding to the request is server.

Figure 1: Basic Client-Server Communication
Figure 2: Client-Server-Database Communication

Examples:

  • Web Browsing: Client (web browser) requests webpage from server; server retrieves and sends it back.
  • Online Gaming: Game client on device interacts with game server for gameplay.

Can an App Server Act as a Client?

Yes. Examples:

  • Database Connectivity: App server acts as client to retrieve/update data from DB server.
  • External APIs: App server can request/receive data from third-party services.