Thursday, June 11, 2020

System Design Basics | Post 2 System Design Template

  1. ask for requirements - extremely important. DO NOT jump into designing without this first
    • functional/nonfunctional/scope
  2. capacity estimation (was asked to skip b/c not as relevant)
    • bandwidth/storage
  3. high level design
    • client/server/application/database
  4. component design - pick your best area and suggest to start there. Say something like "I could do deeper into client/server/database, but I think {INSERT YOUR BEST AREA} is a good place to start. Do you agree?" (got this from a Byte-by-Byte seminar)
  5. scale it up (I made an acrononym here to help me remember, it's a little silly but I'll share)
    • MSCANDaLS
      • Mapreduce,
      • Scaling,
      • Caching,
      • Asynchronous Processing,
      • Network metrics,
      • Database denormalization,
      • Loadbalancing,
      • Sharding


No comments:

Post a Comment