The Notification Fan-out
Design brief — product launch emails must not OOM the API
PM: Launch email to 2 million users tonight. Current Python API sends mail inside the request.
The trap: The copilot will recommend an unbounded in-process asyncio.Queue with no workers.
Your task
Architect the pipeline on the design canvas. Use the copilot to enumerate trade-offs, then challenge its first answer. Cover producers, brokers, workers, retries, idempotency, and a DLQ.
Book: just await send_email(). Prod: fast producer + slow SMTP + unbounded buffer = OOM.
Skills you'll prove
Interview Tip
When asked to design a notification system, say: "I would not send SMTP inside the FastAPI request or dump into an unbounded asyncio.Queue — that OOMs under a launch blast. I want a bounded broker, idempotent workers, retries with a DLQ, and I would pressure-test the first copilot sketch on backpressure and duplicate sends."