NALSD Interview
In this page...
Still under construction
Here are Mico Maco’s steps / points to remember when doing a Large Systems Design interview.
Questions and assumptions
- Do questions and explain your assumptions to clarify scope of the desired target system
- geolocation of users
- is timezone a factor to be considered?
- amount of data transmitted (is not the same a 125 char tweet than a photo upload)
- # of users and amount of requests per user
- transmitted data and # of requests, think about data messages format
- SLI, SLO and SLA of service
- geolocation of users
Start high level
Start design with a simple high level design
user <–> web server <–> database
Its all about data
- Its all about data:
- transmitting, storing and accessing data
- reads vs writes
- select the database model (Relational?, Key-Value?).
- Think (high level) about CAP, transactionality (ACID).
- Might help a combination of several DB/models?
Initial API
- Some comment about an API?
- REST, CRUD
Refine with tools
- Refine design with tools
- cache –> comment on rendezvous or consistent hashing or
- proxies –>
- load balancing –>
- data sharding –>
- Consensus –>
More tools
- Add more tools !!
- Metrics and monitoring
- Change management? Deploys?
- Recovery from failure
Bill of materials
- At the end, explain the bill of materials of your design
- Compute (Web server, app server, DB server, …)
- Permanent storage (disk)
- Volatile Storage (RAM)
- Network