CloudSketch AI Logo
FeaturesTemplatesPricingEnterpriseAboutContactLog in
🌙☀️
Log inStart free
Home/Templates/System Design Interview Classics

📝 System Design Interview Classics · Deployment · Pro

Notification Service Design

A notification system that sends email, SMS and push messages at scale: one API, a queue per channel, user preferences, and retries.

More System Design Interview Classics templates

Deployment diagrams are part of Pro. Anyone can view this one; generating and editing it needs Pro.

Drawing diagram…

What this diagram shows

  • Separate queues so a slow SMS provider doesn't delay push
  • User preferences and quiet hours are checked before sending
  • Failed sends are retried with backoff, then parked in a dead-letter queue

Prompt used

Notification service deployment: internal services call the notification API on Kubernetes. The API checks user preferences in PostgreSQL, renders templates and puts messages on per-channel Kafka topics. Email, SMS and push workers consume their topics and call SendGrid, an SMS gateway and Firebase Cloud Messaging. Failures go to a retry topic and then a dead-letter topic.

Mermaid code
flowchart TB
  SVC[Internal Services] --> API
  subgraph K8S[Kubernetes Cluster]
    API[Notification API]
    TPL[Template Renderer]
    subgraph WORKERS[Workers]
      EW[Email Worker]
      SW[SMS Worker]
      PW[Push Worker]
    end
  end
  subgraph KAFKA[Kafka]
    TE[email topic]
    TS[sms topic]
    TP[push topic]
    TR[retry topic]
    DLQ[dead-letter topic]
  end
  PREF[(Preferences DB - PostgreSQL)]
  API --> PREF
  API --> TPL
  API --> TE
  API --> TS
  API --> TP
  TE --> EW
  TS --> SW
  TP --> PW
  EW --> SG[SendGrid]
  SW --> SMS[SMS Gateway]
  PW --> FCM[Firebase Cloud Messaging]
  EW -.failure.-> TR
  SW -.failure.-> TR
  PW -.failure.-> TR
  TR -.after 5 tries.-> DLQ

Related templates

C4 ArchitectureProSystem Design Interview Classics

URL Shortener System Design

The classic interview design for a service like bit.ly: short code generation, fast redirects from a cache, and click analytics processed separately.

SequenceSystem Design Interview Classics

Chat App Message Delivery (WhatsApp-style)

How a one-to-one chat message is delivered in a WhatsApp-style system, with sent, delivered and read ticks, and push notifications when the receiver is offline.

Data FlowSystem Design Interview Classics

Social News Feed (Twitter-style)

How posts reach followers' feeds: fan-out on write for normal users, fan-out on read for celebrities, and a ranked feed built from a cache.

C4 ArchitectureProSystem Design Interview Classics

Ride Matching System (Uber-style)

The core of a ride-hailing app: drivers stream their locations, a geo index finds nearby drivers, and a matching service offers the trip to the best one.

FlowchartSystem Design Interview Classics

API Rate Limiter (Token Bucket)

How a token bucket rate limiter decides whether to let an API request through, using Redis so all servers share the same counts.

Data FlowSystem Design Interview Classics

Search Autocomplete (Typeahead)

How search suggestions appear as you type: a prefix index built offline from past searches, served from memory, and refreshed regularly.