Design a product notifications system
Company: Meta
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design a push notifications and in-app messaging platform for a large consumer mobile app. Support user preference management (channels, quiet hours), segmentation and targeting, deduplication, rate limiting, retries and backoff, idempotency, scheduling and batching, A/B experiments, and localization. Describe the APIs, data model, event pipeline, delivery workers, and integration with iOS/Android push services. Address scalability to millions of DAUs, multi-region deployment, consistency vs availability trade-offs, monitoring/alerting, GDPR/CCPA compliance, and failure handling. Propose capacity estimates and a rollout plan.
Quick Answer: This question evaluates system design competencies for building a large-scale notifications platform—covering architecture, APIs, data modeling, event pipelines, delivery semantics (retries, deduplication, idempotency), targeting/segmentation, localization, monitoring, and legal compliance such as GDPR/CCPA.