HLD-104·Messaging & Queues
Easy · 500 ptsWebhook & Transactional Notification Dispatcher
Design an event-driven notification and webhook ingestion pipeline that buffers sudden merchant traffic bursts and tracks delivery state without losing events.
Max p99
≤ 85 ms
Availability
≥ 99.5%
Budget
≤ $2,200
Functional Requirements
- FR-1POST /webhooks/send — Accepts an outbound event payload, persists/enqueues it durably, and returns 202 Accepted.
- FR-2GET /webhooks/{webhook_id}/status — Queries delivery state and attempt history.
- FR-3DELETE /webhooks/send/{tenant_id} — Supports tenant retention TTL expiry, rule updates, or stream cleanup while keeping recent rollup caches fresh.
- FR-4Must survive a primary database node crash without dropping queued notifications.
Workload Profile
Baseline Load10,000 Status Read RPS / 6,000 Enqueue Write RPS
Merchant Peak28,000 Read RPS / 22,000 Enqueue Write RPS
Active Working Set8 GB recent delivery status metadata
Traffic DistributionModerate tenant skew on large merchant_id accounts
Consistency Model
At-least-once asynchronous delivery with eventual status visibility (< 3s); zero lost accepted webhooks.
Solutions Locked
Sign in and either achieve AC or complete 3 official submissions on this question to inspect community diagrams and writeups.
Loading solutions...
Submission History (0)Select to replay
No submissions yet
Click Submit in the top bar to evaluate against all 7 judge cases and save each run here.
Design Write-up
0 boxes · 0 edges
0 words