How to write a HLD document?

justgig8
2 min readJul 11, 2020

--

  1. Requirements: gain full clarity on requirements first. Scope out what end goals are to be met by the product
  2. Estimates: estimate scale of the traffic, reads:writes ratio, storage requirements, network bandwidth usage, cache memory required etc.
  3. Interfaces: define what APIs/ functions are expected from the system
  4. Entities: define various entities and the interaction between them
  5. Data storage: define what database to use, whether to encrypt data or not, which CDN to use, which file system to use etc.
  6. Components: draw a block diagram with 5–6 boxes representing core components of the system, which are enough for solving problem E2E. Usually the components will be (in this order) clients, load balancers, application servers, databases/ caches/ file system.
  7. Details: detail out each component and list out pros and cons of each approach for each component. For e.g. for database component, list out partitioning strategies; for cache component, should it store data in a way. that it is optimised for reading recent data
  8. Bottlenecks and failure points: identify these and list out approaches to mitigate them. For e.g. is there any single point of failure? Do we need data replicas for redundancy? How to get alerts when any component goes down? What’s the backup plan in that case? And so on.
Sample components

For detailed course on HLD, please refer:
https://educative.io/signup?referralCode=arpit.go4-N8rw1XZyJPL

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response