PracHub
QuestionsLearningGuidesInterview Prep
|Home/System Design/Pinterest

Design a Multi-Channel Notification System

Last updated: Jul 14, 2026

Quick Overview

Design a multi-channel notification platform for push, email, SMS, and in-app messages that respects consent, preferences, quiet hours, locale, priority, and frequency limits. Cover durable intents, idempotency, rendering, provider retries, deduplication, webhooks, fallback, auditability, and realistic delivery semantics.

  • medium
  • Pinterest
  • System Design
  • Software Engineer

Design a Multi-Channel Notification System

Company: Pinterest

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Take-home Project

# Design a Multi-Channel Notification System Design a notification platform that accepts product events and delivers timely messages through channels such as push, email, SMS, and in-app inbox. Respect user preferences, prevent unwanted duplicates, and remain useful when providers or downstream systems fail. ### Constraints & Assumptions - Producers submit a notification intent with recipient, type, content parameters, priority, and idempotency key. - Users can configure channel preferences, quiet hours, locale, and opt-outs. - Some notifications are urgent while others may be grouped or delayed. - Third-party channel providers can time out, throttle, reject, or later report delivery status. - Exactly-once physical delivery cannot be guaranteed across every external provider. ### Clarifying Questions to Ask - Which channels, notification types, latency objectives, and delivery guarantees are required? - Who owns templates and localization, and may content change after enqueueing? - Which legal consent, opt-out, retention, and regional rules apply? - Should similar notifications be batched, collapsed, ranked, or rate-limited? - What does the product consider sent, delivered, read, or failed? ### Hints - Separate intent acceptance, policy resolution, rendering, channel delivery, and status tracking. - Snapshot enough policy and template information to make retries explainable. - Make each channel attempt idempotent where provider capabilities allow it. ### What a Strong Answer Covers - API contract, authentication, idempotency, durable intent storage, queues, and scheduling. - Preference, consent, quiet-hour, priority, frequency-cap, suppression, and fallback decisions. - Versioned templates, localization, safe rendering, personalization boundaries, and immutable audit context. - Channel workers, provider adapters, timeouts, retries, dead letters, deduplication, and status webhooks. - In-app inbox state, ordering, read markers, multi-device behavior, and deletion or retention. - Observability, provider health, tenant isolation, abuse controls, cost, and realistic delivery semantics. ### Follow-up Questions 1. How would you prevent a timeout retry from sending two SMS messages? 2. What happens when quiet hours end and a user has hundreds of pending notifications? 3. How would you change providers without losing status history or violating opt-outs? 4. Which data should be frozen at intent time versus resolved immediately before delivery?

Quick Answer: Design a multi-channel notification platform for push, email, SMS, and in-app messages that respects consent, preferences, quiet hours, locale, priority, and frequency limits. Cover durable intents, idempotency, rendering, provider retries, deduplication, webhooks, fallback, auditability, and realistic delivery semantics.

Related Interview Questions

  • Design a Distributed Rate-Limiting Service - Pinterest (medium)
  • Design a Distributed Rate Limiter - Pinterest (medium)
  • Design Catalog Update Pipeline - Pinterest (medium)
  • Design an ads event reporting system - Pinterest (medium)
|Home/System Design/Pinterest

Design a Multi-Channel Notification System

Pinterest logo
Pinterest
Jul 2, 2026, 12:00 AM
mediumSoftware EngineerTake-home ProjectSystem Design
9
0

Design a Multi-Channel Notification System

Design a notification platform that accepts product events and delivers timely messages through channels such as push, email, SMS, and in-app inbox. Respect user preferences, prevent unwanted duplicates, and remain useful when providers or downstream systems fail.

Constraints & Assumptions

  • Producers submit a notification intent with recipient, type, content parameters, priority, and idempotency key.
  • Users can configure channel preferences, quiet hours, locale, and opt-outs.
  • Some notifications are urgent while others may be grouped or delayed.
  • Third-party channel providers can time out, throttle, reject, or later report delivery status.
  • Exactly-once physical delivery cannot be guaranteed across every external provider.

Clarifying Questions to Ask Guidance

  • Which channels, notification types, latency objectives, and delivery guarantees are required?
  • Who owns templates and localization, and may content change after enqueueing?
  • Which legal consent, opt-out, retention, and regional rules apply?
  • Should similar notifications be batched, collapsed, ranked, or rate-limited?
  • What does the product consider sent, delivered, read, or failed?

Hints

  • Separate intent acceptance, policy resolution, rendering, channel delivery, and status tracking.
  • Snapshot enough policy and template information to make retries explainable.
  • Make each channel attempt idempotent where provider capabilities allow it.

What a Strong Answer Covers Guidance

  • API contract, authentication, idempotency, durable intent storage, queues, and scheduling.
  • Preference, consent, quiet-hour, priority, frequency-cap, suppression, and fallback decisions.
  • Versioned templates, localization, safe rendering, personalization boundaries, and immutable audit context.
  • Channel workers, provider adapters, timeouts, retries, dead letters, deduplication, and status webhooks.
  • In-app inbox state, ordering, read markers, multi-device behavior, and deletion or retention.
  • Observability, provider health, tenant isolation, abuse controls, cost, and realistic delivery semantics.

Follow-up Questions Guidance

  1. How would you prevent a timeout retry from sending two SMS messages?
  2. What happens when quiet hours end and a user has hundreds of pending notifications?
  3. How would you change providers without losing status history or violating opt-outs?
  4. Which data should be frozen at intent time versus resolved immediately before delivery?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Pinterest•More Software Engineer•Pinterest Software Engineer•Pinterest System Design•Software Engineer System Design

Your design canvas — auto-saved

PracHub

Master your tech interviews with 8,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.