Skip to content

Feature expectations ​

Time: 5 min

  • Usecases
  • Scenarios that will not be covered
  • Who will use
  • How many will use
  • Usage patterns

Estimations ​

Time: 5 min

  • Throughput (QPS for read and write queries)
  • Latency expected from the system (for read and write queries)
  • Read/Write ratio
  • Traffic estimates (write, read - qps, volume of data)
  • Storage estimates
  • Memory estimates

If we are using a cache, what is the kind of data we want to store in cache

How much RAM and how many machines do we need for us to achieve this?

Amount of data you want to store in disk/ssd

Design goals ​

Time: 5 min

  • Latency and Throughput requirements
  • Consistency vs Availability (weak/strong/eventual, failover/replication)

High Level Design ​

Time: 5-10 min

  • APIs for read/write scenarios for crucial components
  • database schema
  • basic algorithm
  • high level design for read/write scenario

Deep Dive ​

Time: 15-20 min

  • Scaling the algorithm
  • Scaling individual components

Availability, Consistency and Scale story for each component

Consistency and Availability pattern

  • Think about the following components, how they would fit in and how it would help
  • DNS

  • CDN (push/pull)

  • Load balancers (active-passive, active-active, l4, l7)

  • Reverse proxy

  • Application level scaling (microservices, service delivery)

  • DB (relational: sharding, denormalization, replication, sql tuning; nosql: kv, document, graph, column)

  • Caches (client, cdn, webserver, db, app)

  • Asynchronism (mq, task queue, back pressure)

  • Communication (tcp, udp, rest, rpc)

Justify ​

Time: 5 min

  • Throughput of each layer
  • Latency caused between each layer
  • Overall latency justification

Resources ​