跳至主要內容

System Design – Part 1: Intro

What’s system design?

The process of defining the architecture, components, modules, interfaces and data for a system to satisfy specified requirements.

If we break down the design process, you can see the flow is like below:

What’s good design?

  1. Healthiness
    • Execution: Every component works fine without issue
    • Communication: Communication between components are smooth and low latency
  2. Simplicity
    • No more; no less
    • Understandable

Funamental questions in system design

  1. Please design a specific system
  2. Please evaluate query per second (QPS)
  3. Please scale the system

How to crack a design?

We can follow SNAKE principle

  • Scenario: case/interface

We need to break down the system and list out the core features that we need to deal with.

  • Necessary: constrain/hypothesis

We need to know what daily active user (DAU), query per second (QPS), transaction per second (TPS) and peak usage etc. we target for.

  • Application: service/algorithm

We need to design what service or algorithm we’re going to implement.

  • Kilobit: data

How will we store data and provide data to users?

  • Evolve

Check if there is any new constrains, or use cases or performance issue etc.

分類:Self-learning

搶先發佈留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

由 Compete Themes 設計的 Author 佈景主題