HLDArena
HLD-110·Storage & Caching
Easy · 500 pts

Transactional Email Bounce & Suppression Store

Design a pre-send email suppression lookup service queried before every outbound message so hard-bounced or unsubscribed recipients are never emailed again.

Max p99
≤ 35 ms
Availability
≥ 99.5%
Budget
≤ $2,150

Functional Requirements

  • FR-1GET /suppression/{email_hash} — Checks whether an address is suppressed prior to SMTP dispatch.
  • FR-2POST /bounces — Records ISP hard-bounce and unsubscribe webhooks durably.
  • FR-3DELETE /suppression/{email_hash} — Supports tenant retention TTL expiry, rule updates, or stream cleanup while keeping recent rollup caches fresh.
  • FR-4Must remain online across a primary database crash during marketing campaign blasts.

Workload Profile

Baseline Checks15,000 Read RPS / 2,000 Bounce Write RPS
Campaign Blast Peak46,000 Read RPS / 6,000 Write RPS
Active Working Set12 GB hot suppression set & Bloom/cache tier
Traffic DistributionModerate skew across active recipient domains

Consistency Model

Eventual suppression propagation (< 5s) acceptable; recorded hard bounces must never be lost.

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
1,500 rps
Write RPS
200 rps
Key Distribution
Uniform (Low Skew)
Chaos Fault
None (Healthy Cluster)
Expected Pass CriteriaASSERTIONS
• Tail Latency: p99 ≤ 70 ms
• Availability: ≥ 99.5%
Valid end-to-end Client → Compute → Storage topology