High-level design is the process of creating an abstract representation of a software system or product. It involves identifying the major components of the system, defining their relationships and interactions, and mapping out the overall structure of the system.

In the context of software development, high-level design typically follows requirements analysis and precedes detailed design and implementation. The goal of high-level design is to establish a blueprint for the system that can guide the subsequent phases of development.

High-level design typically involves creating diagrams, flowcharts, and other visual representations of the system’s architecture and functionality. These diagrams help to communicate the design to stakeholders and team members, and serve as a reference for developers during the implementation phase.

High-level design is an important step in the software development process because it helps to ensure that the system is well-organized, efficient, and easy to maintain. By creating a clear blueprint for the system, developers can more easily identify potential problems and make informed decisions about how to implement the system’s features and functionality.

In order to develop the High-Level Design (HLD) of a system you should have knowledge of the following topics

  • CAP Theorem
  • Network Protocols
  • Network Architecture (Client-Server, P2P)
  • Design Patterns to implement Microservices
  • Scaling application
  • Consistent Hashing
  • SQL vs No-SQL database
  • Message Queue (Kafka)
  • Circuit Breaker
  • CQRS
  • SAGA
  • Proxy server
  • CDN
  • Storage types
  • File system
  • Bloom filter
  • Web Hook
  • Merkel Gree, Gossiping Protocol
  • Caching
  • Scalilng database
    • Sharding (horizontal / vertical)
    • Partitioning
    • Replication, Mirroring
    • Lead election
    • Indexing etc


  • Desigin Consistent Hashing
  • Design URL Shrotening
  • Envellope Estimation
  • Key-value store
  • Whatsapp
  • Rate limiter
  • Autocomplete search (like typehead system)
  • Notification system
  • Pastebin
  • Twitter
  • Dorpbox
  • Instagram
  • Youtube
  • Google Drive
  • Web Crawler
  • Facebook news feed/ Newsfeed system
  • Ticker master
  • Nearby friends or Yelp