Skip to main content
Purpose
  • What verbs should you use when ansewring a system design questions?
  • What topics are you expected to cover in response to a system design question?
  • Need to abstract the engineering "verbs" and system design decision points from designing data intensive applications
  • What language should one use when discussing the right database to choose/use?
  • What are the key words to say during an interview?
  • Consolidate things to mention during a technical interview ...
  • What are the main decision points?
    • db choice
    • data model choice
    • api design

Topics

Choosing the right database

  • Transactions or Not?
  • Acid or not?
  • Consistency Reqs?
  • Atomicisity reqs?
  • Partition-able?

Choosing a data model

  • Understanding Access Patterns

Making system design decisions

  • Designing for scale
    • Deciding on partitions
  • Designing for latency
  • Designing for security
  • Designing for redundancy
  • Designing for reuse
    • Any pre-exiting systems I can integrate with ...
  • Adhering to legal constraints
    • What databases is your company licensed to use?
  • Understanding implications between UX and sytem

Questions to Address

How often does the structure of the data change? Do you need every acid principle? What is the happy path? What is the critical path Is the data structured? Semi steuctured?

Dataflow

  • pushing vs pulling
    • Does producer need to publish to multiple consumers ...?
  • append log vs not
    • When to use one?

Metrics

  • Goal Metrics?
  • AB Test?