# System Design Notes
###### tags: `System Design` `Distributed System` `Server` `System Administration` `Software` `Kubernetes` `API`
Learn how to create an architecture for different components, interfaces, and modules of the system and provide corresponding data helpful in implementing such elements in systems.
- Sketchy System Design Overview

- Microservices & Development

## Resources
- [System Design Interview: A Step-By-Step Guide - ByteByteGo](https://www.youtube.com/watch?v=i7twT3x5yv8&ab_channel=ByteByteGo)
- [Architecting a Cloud Native API Solution - IBM Technology](https://www.youtube.com/watch?v=sKfep-UmZeM)
## Sketch a System
### custom APIs defination
monolithic system -> distributed microservices -> with API gateway
- design a shopping site with microservices
(contentDB fetch / order serv / account serv / inventory serv / shipping serv / review system...)

- all setup/documental_sketch/develop_files between local repository & server running k8s

### time management
1. [10%] understand problem, restrictions, requirements
- open freeminded & construct whole blueprint delicated
- consider technical topics like scalability, pipeline, efficiency, consistency
2. [45%] design in high level (functions between users & servers) & sketch overall diagram
- comunication method
- API gateways -> functions
- virtual physical infrastructures (Ex. data storage layer, functional units, recycle daemons ...)
- data model & schema (take performance / tradeoff into accounts)
- data access patterns
- R/W ratio
3. [40%] design in detailed
- articulate & identify potential problems & solutions
- come up with multiple feasible solutions & features & tradeoffs for different scenarios
- modified detailed design impl until meet the requirement & acceptable tradeoffs
- [(How To Choose The Right Database? - ByteByteGo)](https://www.youtube.com/watch?v=kkeFE6iRfMM)
5. [5%] overview
- nonfunctional features: efficiency / scalability / pros & cons
- retrospect and future prospect
## data pipeline
> how do you dealing with your data
[Data Pipeline 從零開始建置 - 阿喵就像家](https://mlwmlw.org/2018/09/data-pipeline-%e5%be%9e%e9%9b%b6%e9%96%8b%e5%a7%8b/)

## Performance
### Scale up

### hardware acceleration
[Understanding How Browser Run an Application - Chrome Dev](https://developer.chrome.com/blog/inside-browser-part1/#browser-architecture)
- moving different services into multiple processes and a single browser process
