System design

·

1 min read

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

    https://bytebytego.com/courses/system-design-interview/a-framework-for-system-design-interviews

  • 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