Created
March 5, 2021 05:24
-
-
Save d4rkr00t/76e01597bf4a0b7f840859950a840c5f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Template: | |
- 1. Outline use cases, constraints, and assumptions: | |
- Who is going to use it? | |
- How are they going to use it? | |
- How many users are there? | |
- What does the system do? | |
- What are the inputs and outputs of the system? | |
- How much data do we expect to handle? | |
- How many requests per second do we expect? | |
- What is the expected read to write ratio? | |
- 2. Create a high level design: | |
- Sketch the main components and connections | |
- Justify your ideas | |
- 3. Design core components | |
- 4. Scale the design: | |
- Load balancer | |
- Horizontal scaling | |
- Caching | |
- Database sharding | |
- Things to consider: | |
- Metrics | |
- SSR | |
- Scaling: | |
- Caching | |
- CDN | |
- Load balancing | |
- Database sharding | |
- CAP | |
- Optimistic updates | |
- Code splitting | |
- Virtualisation | |
- Preload, prefetch |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment