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
August 6, 20259
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
How to Approach This
- Start by clarifying functional and non-functional requirements with the interviewer.
- Estimate the scale: QPS, storage, bandwidth. This drives your design decisions.
- Draw a high-level architecture first, then deep dive into 1-2 critical components.
- Discuss trade-offs explicitly (e.g., consistency vs availability, SQL vs NoSQL).
- 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 ProblemsSample Answer
Requirements
Functional Requirements:
- Multi-Channel Delivery: Support notifications via email, SMS, and push notifications.
- 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...