System design
Thoughts on what to discuss at each stage
Step 1: narrow the scope
Scale: how many users / traffic
Security / Authentication: is this already in place?
Data size: e.g. handling videos is different to images vs small data like credit card transactions
Step 2: Design
Images from https://bytebytego.com/courses/system-design-interview/a-framework-for-system-design-interviews
Sketch out the infrastructure layer to buy you time to think
Then the bit underneath is probably the “real” systems design for a backend dev
Typically it’s some service that talks to some DB and/or Cache
Considerations:
Webjobs
Scheduled / triggered
Rate limiting
Database
Relational (SQL) / non-relational (Cosmos)
Normalised / denormalised
Locking vs not