Die Oberfläche ist lokalisiert; Skill-Beschreibungen und -Dokumente werden per KI automatisch in Ihre Sprache übersetzt. Code, Befehle, Pfade und Fachbegriffe bleiben im Original, maßgeblich ist das Dokument des Autors.
Skills entdecken
Design und Kreativität · SKILL.md

system-design-estimation

system-design-estimation

Compute defensible capacity numbers before architecture: average and peak QPS, storage growth, bandwidth, working-set memory, latency and availability budgets. Use when sizing a service, provisioning infrastructure, or checking that a design survives peak load.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill-Dokumentation

GitHub

name: system-design-estimation description: "Compute defensible capacity numbers before architecture: average and peak QPS, storage growth, bandwidth, working-set memory, latency and availability budgets. Use when sizing a service, provisioning infrastructure, or checking that a design survives peak load." metadata: triggers: keywords: - back of envelope - qps - capacity estimate - storage estimate - throughput budget - peak load - latency budget - sizing

Capacity Estimation

Priority: P1 (HIGH)

Estimate before you architect. One order of magnitude decides cache, shard, and queue choices.

Core Formulas

  • average QPS = DAU x actions per user per day / 86,400
  • peak QPS = average QPS x peak factor (default 5x; 20-100x for flash sale, ticket drop, or scheduled push)
  • storage per year = writes per day x record size x 365 x replication factor
  • bandwidth = QPS x payload size (compute ingress and egress separately)
  • working set = hot records x record size, where hot is typically 20% of data serving 80% of reads
  • connections = concurrent users x connections per user; compare against pool and file-descriptor limits

Method

  1. Round every input to one significant figure. Precision here is false precision.
  2. Compute average, then peak, then storage, then bandwidth, then memory.
  3. Compare each result to a known ceiling from estimation numbers: single-node QPS, disk IOPS, NIC throughput, RAM per instance.
  4. Name the shaping quantity - the first number that breaks a single-node ceiling. It dictates the first component added in high-level design.
  5. Restate every assumed input beside the result so a wrong assumption is visible, not buried.

Cost

  • Convert the sized capacity into monthly spend before recommending it: compute, storage plus egress, managed-service premiums, and the multiplier any redundancy applies.
  • Cost is a design constraint, not an afterthought. A topology the budget cannot hold is not a design, it is a proposal to be rejected later.
  • State cost per unit of value where it clarifies: cost per 1k requests, per GB retained, per nine of availability added.

Latency Budget

  • Build the p95 budget as a sum of hops; every remote call spends from one fixed budget.
  • Use order-of-magnitude anchors: memory 100ns, SSD read 100us, same-DC round trip 500us, cross-region round trip 100ms+.
  • A synchronous fan-out of N calls costs the slowest call, not the average. Budget with p99, not the mean.

Availability Math

  • Serial dependencies multiply: three 99.9% services in one path yield 99.7%.
  • Redundant replicas add nines only when failure modes are independent; a shared store or config plane cancels the gain.
  • Convert the target into an error budget in minutes per month before promising it.

Anti-Patterns

  • No design before numbers: never pick a database or cache before QPS and storage exist.
  • No average-only sizing: capacity is provisioned for peak, cost is modeled on average.
  • No hidden units: state units and time windows on every number (QPS, GB/day, GB/year).
  • No unverified precision: do not report 4,873 QPS from an assumed DAU; report ~5k QPS.

Verify

  • Average and peak QPS both stated, with the peak factor named
  • Storage projected over the retention window including replication
  • Shaping quantity identified and mapped to a design consequence
  • Every assumed input labeled beside the result

References

  • Estimation Numbers - powers of two, latency table, single-node ceilings, worked examples
Gespeicherte Skills