Jc-alt logo
jc

System Design Definitions

System Design Definitions
3 min read
system design

System Design Intro

Hub for question card definitions. Will be linked to diagrams across all system design notes.

Will be ordered by system design intro section

Section 1. Single Machine Fundamentals

- Single Server

1.1 Server

Responsible for serving an API and return data to user or others systems

  • etc

1.2 Client

Responsible for consuming an API and presenting data to users or other systems Rely on servers to process requests and return results

  • any software or device that initiates requests to a server or service over a network
  • web browsers
  • mobile apps
  • desktop programs
  • any service consuming an API

1.3 DNS

  • responsible for resolving domain names into IP addresses
  • (e.g., www.google.com to 8.8.8.8)
  • system usually provided by third parties
  • registrars
  • hosting providers
  • dedicated DNS services

1.4 Domain Name

  • human readable address of a resource on the internet
  • acts as an alias for an IP address, easier to remember
  • registered through registrars
  • resolved to IP addresses via DNS

1.5 IP Address

  • numerical label assigned to device on a network

An Internet Protocol (IP) address is the numerical label assigned to a device on a network. It is returned to the browser or mobile app after a DNS lookup so the client knows where to send requests.

1.6 HTTP Protocol

Hypertext Transfer Protocol (HTTP) is an application level protocol used for communication between clients (e.g., browsers, mobile apps) and servers on the web. It defines how requests and responses are formatted and transmitted over TCP/IP networks.

HTTP itself does not define the format of the data being sent, it only provides a way to transport it (e.g. of data being sent: HTML, JSON, img, binary files).

1.7 HTTP Request/Response

1.8 HTML Response

1.9 Web Application

1.10 Mobile Application

1.11 API

- Database

1.12 Relational Database

1.13 Non Relational Database

1.14 Scaling

1.15 Vertical Scaling

1.16 Horizontal Scaling

Section 2. Scaling the Compute/Service Layer

- Load Balancer

2.1 Load Balancer

2.2 Private IP Address

2.3 NAT

2.4 Database Replication

2.5 Cache

2.6 Client Side Cache

2.7 CDN Edge Cache

2.8 Server Cache

2.9 Database Cache

2.10 Expiration Policy

2.11 Consistency

2.12 Mitigating Failures

2.13 Eviction Policy

2.14 CDN

2.15 Cost

2.16 Appropriate Cache Expiry

2.17 CDN Fallback

2.18 Invalidation

- State and Stateless Web Tier

2.19 Stateful Architecture

2.20 Stateless Architecture