Menu

Earn Premium with Referrals

Invite your friends and earn Premium rewards through our referral program.

See how it works and start inviting friends.

Quality Attributes
HLD

Quality Attributes

The measurable '-ilities' — availability, latency, scalability, and friends — how each is defined, measured, and traded.

What Quality Attributes Are

Quality attributes (the “-ilities”) are the vocabulary of NFRs — the specific, measurable properties a design must deliver. They matter because every architecture diagram is secretly a bet about which attributes win. Making the bets explicit is what separates design from box-drawing.

The Core Set

AttributeDefinitionMeasured byTypical target
AvailabilityFraction of time service responds correctlyUptime / error-rate SLO99.9%–99.99%
LatencyTime to serve one requestp50/p95/p99Sub-100ms reads common
ScalabilityAbility to handle growth by adding resourcesQPS at target latency vs nodesLinear-ish scaling
ReliabilityProbability of correct operation over interval; resistance to failureMTBF, error budget burnZero silent data loss
DurabilityData survives despite failuresReplication factor, backup RPO11 nines with erasure coding
ConsistencyHow tightly replicas agreeStaleness bounds, anomaly classPer-data-type choice
SecurityResistance to unauthorized access/changeThreat model coverage, auditLeast privilege everywhere
MaintainabilityCost to change safelyChange lead time, defect rateBoring, documented, tested

Attributes Conflict — That Is Their Whole Point

                    STRONG CONSISTENCY

                          │  sync replication:
                          │  every write waits for quorum
        DURABILITY ◄──────┼──────► LATENCY
                          │  async replication:
                          │  fast writes, divergence window

                   LOW WRITE LATENCY

 AVAILABILITY ◄── retries+redundancy cost money ──► COST
 SCALABILITY  ◄── sharding breaks global txns ──► CONSISTENCY

Each arrow is a real engineering decision. Naming which corner you are standing in — and why this feature belongs there — is senior-level communication.

Scenario Format: Making Attributes Testable

Vague targets (“fast”, “reliable”) cannot steer design. The scenario format pins each attribute:

 ATTRIBUTE:  Latency
 STIMULUS:   User requests feed page
 RESPONSE:   Fully rendered first screen
 MEASURE:    p95 under 200 ms
 CONDITIONS: 10M DAU, cache hit ratio 90%, any region
 
 ATTRIBUTE:  Durability
 STIMULUS:   AZ loss during peak write traffic
 RESPONSE:   Zero acknowledged writes lost
 MEASURE:    RPO = 0 for payment records

Now the architecture can be checked against requirements instead of argued about.

Choosing Which Attributes Matter

Not every system needs every attribute maximized — ranking is the actual work:

  1. Identify the money path — checkout, ride-match, trade-execution get strictest latency + consistency.
  2. Identify the brand path — login, search, feeds get availability + tail-latency focus.
  3. Let the rest be cheap — admin panels at 99% availability on boring tech.

A system where everything is P0 has no architecture, only anxiety.

Interview Framing

Strong candidates declare attribute priorities in the requirements phase (“reads are latency-sensitive and loss-tolerant; payments are the opposite”) and then visibly honor those rankings when choosing components. Revisiting the ranking under interviewer pushback (“what if durability must be absolute?”) demonstrates the thinking, not just the conclusion.

My Private Notes

Notes are auto-saved locally to this device.