Skip to content

Instantly share code, notes, and snippets.

@d4rkr00t
Created March 5, 2021 05:24
Show Gist options
  • Save d4rkr00t/76e01597bf4a0b7f840859950a840c5f to your computer and use it in GitHub Desktop.
Save d4rkr00t/76e01597bf4a0b7f840859950a840c5f to your computer and use it in GitHub Desktop.
- 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