Design a consumer notification and payment reminder system

Last updated: August 6, 2025

Quick Overview

Design a system that sends timely payment reminders, confirmation receipts, and account alerts to millions of consumers via email, SMS, and push notifications. Handle preferences, throttling, and delivery tracking.

Affirm
System Design
Software Engineer
Affirm
August 6, 2025
Software Engineer
System Design Round
System Design
Medium

9

8

4,235 solved


Design a system that sends timely payment reminders, confirmation receipts, and account alerts to millions of consumers via email, SMS, and push notifications. Handle preferences, throttling, and delivery tracking.

Payment reminders directly impact Affirm's repayment rates. This question tests your ability to design a reliable, high-throughput notification system with fintech-specific requirements like regulatory compliance for billing communications.

What the Interviewer Expects
  • Design a multi-channel notification system (email, SMS, push)
  • Handle consumer notification preferences and opt-out requirements
  • Discuss throttling to prevent notification fatigue
  • Ensure delivery tracking and retry logic for failed notifications
  • Address regulatory requirements for billing communications (CAN-SPAM, TCPA)
Key Topics to Cover
Event-driven notification architecture
Multi-channel delivery (email, SMS, push)
Throttling and rate limiting
Regulatory compliance (CAN-SPAM, TCPA)
Delivery tracking and analytics
How to Approach This
  1. Start by clarifying functional and non-functional requirements with the interviewer.
  2. Estimate the scale: QPS, storage, bandwidth. This drives your design decisions.
  3. Draw a high-level architecture first, then deep dive into 1-2 critical components.
  4. Discuss trade-offs explicitly (e.g., consistency vs availability, SQL vs NoSQL).
  5. Address failure scenarios, monitoring, and how the system handles 10x traffic spikes.
Possible Follow-up Questions
  • How would you handle timezone-aware scheduling for payment reminders?
  • What happens when a consumer's email bounces or phone number changes?
  • How would you A/B test different reminder strategies to optimize repayment rates?
  • How do you handle notifications during system outages?
Sharpen Your Skills on Codemia

Practice similar problems with our interactive workspace, get AI feedback, and track your progress.

Practice System Design Problems
Sample Answer
Requirements

Functional Requirements:

  1. Multi-Channel Delivery: Support notifications via email, SMS, and push notifications.
  2. User Preferences: Allow users to set preferences for notification types...
Capacity Estimation

Assuming Affirm has approximately 5 million active users:

  • Daily Payments Reminders: If each user makes an average of 2 payments per month, that's about 333,333 reminders per day.
  • **Other Notif...

Submit Your Answer
Markdown supported

Related Questions