HLDArena
HLD-112·Caching & Edge
Easy · 500 pts

Global Currency FX Exchange Rate Ticker API

Design a read-intensive currency conversion rate API queried by global e-commerce checkout pages during central-bank rate announcements.

Max p99
≤ 25 ms
Availability
≥ 99.5%
Budget
≤ $2,100

Functional Requirements

  • FR-1GET /fx/rates/{pair_code} — Returns latest mid-market and settlement FX rate for a currency pair.
  • FR-2POST /fx/rates — Ingests updated market feed ticks from liquidity providers.
  • FR-3PATCH & DELETE /fx/rates/{pair_code} — Updates, revokes, or deletes pair_code entries with bounded TTL or explicit cache/index invalidation.
  • FR-4Must keep serving sub-25ms FX quotes when backing storage suffers a 5x latency brownout.

Workload Profile

Baseline Quotes20,000 Read RPS / 500 Feed Write RPS
Market Volatility Peak64,500 Read RPS / 1,500 Write RPS
Active Working Set2 GB active spot & historical pair tables
Traffic DistributionHeavy concentration on major pair_code keys (USD/EUR, USD/INR)

Consistency Model

Bounded eventual quote propagation (< 2s) acceptable; published rate ticks must be stored durably.

Design Write-up
0 boxes · 0 edges
0 words
Hidden Cases #4–#7 run automatically on Submit
Case 1: Smoke & API ContractInput Workload
Read RPS
2,000 rps
Write RPS
100 rps
Key Distribution
Uniform (Low Skew)
Chaos Fault
None (Healthy Cluster)
Expected Pass CriteriaASSERTIONS
• Tail Latency: p99 ≤ 50 ms
• Availability: ≥ 99.5%
Valid end-to-end Client → Compute → Storage topology