All problems

Email Service

Accept every send instantly — and deliver it without dropping a message.

medium~20 min Pro Simulator · +110 ptsTheory +45 pts
The build

Accept every send fast and keep delivery draining while a customer's newsletter blast triples volume and a worker dies.

Accepting a send and delivering it are different problems — the accept path must never block on delivery. A queue decouples the two, and a worker fleet drains it; the template/suppression store only survives a newsletter blast because a cache sits in front of it.

Components in play

  • Ingest APIAccepts a send request and hands it to the queue fast.
  • Send queueAbsorbs the accept-to-deliver gap so a burst never blocks the API.
  • Delivery workersDrains the queue and actually sends each message.
  • Template/suppression cacheChecks render templates + do-not-send lists without hitting the store.
  • Template & suppression storeSource of truth for templates and suppression lists.

Graded on these SLOs

  • ≥ 97.00%Sends accepted & delivered
  • ≤ 280 msAccept-to-deliver p99
  • ≥ 8.0k rpsSustain send volume
  • ≤ 88%Worker headroom
  • ≤ 9Lean footprint
Base 8,000 rps45s run 3 scripted failures

The brief

Design a transactional email pipeline like SendGrid or Postmark. Customer apps call an API to send an email; a single customer's newsletter blast can triple volume in seconds. Accepting a send and delivering it are different problems — the accept path can never block on delivery, and a template or suppression-list lookup can't become a bottleneck on every single message.

Functional

  • Accept a send request via an API and return fast
  • Render the template and check suppression lists before delivery
  • Deliver reliably and report delivery status

Non-functional

  • The accept path must stay fast even during a customer's blast
  • Delivery can lag briefly under load, but a job must never be silently dropped
  • Template/suppression checks must add near-zero latency per message

Warm-up: design decisions

Optional theory to prime the calls a senior engineer would make before you build.

Pro

Solving is a Pro feature

Unlock the on-canvas AI design coach, per-run design reviews, the chaos simulator and all 12 problems for $15/month.

  • AI design coach on your canvas — pins failure points & over-engineering
  • Honest AI design review on every run
  • All 12 problems + unlimited chaos simulator
  • Points, levels & leaderboard
Get started