Design a Notification System for Collaborative Design

Last updated: April 5, 2025

Quick Overview

Design a notification system that keeps Canva users informed about design comments, mentions, sharing updates, team activity, and collaboration events across web, mobile, and email channels.

Canva
System Design
Software Engineer
Canva
April 5, 2025
Software Engineer
Technical Screen
System Design
Medium

7

5

3,456 solved


Design a notification system that keeps Canva users informed about design comments, mentions, sharing updates, team activity, and collaboration events across web, mobile, and email channels.

As Canva evolves into a collaboration platform with Canva Teams, notifications become essential for keeping distributed teams aligned. The system must deliver relevant, timely notifications without overwhelming users, support multiple delivery channels, and scale to hundreds of millions of users.

What the Interviewer Expects
  • Design a notification pipeline from event generation to multi-channel delivery
  • Implement notification preferences and intelligent batching to prevent overload
  • Handle real-time in-app notifications alongside async email and push notifications
  • Design for scale with hundreds of millions of users and billions of events daily
Key Topics to Cover
Event-driven architecture
Multi-channel notification delivery
Notification batching and deduplication
User preference management
Push notification infrastructure
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 prevent notification fatigue when a design has many active collaborators?
  • How would you handle notification delivery when a user is active on multiple devices?
  • How would you implement smart notification timing based on user activity patterns?
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. Event Types: Capture design comments, mentions, sharing updates, team activity, and collaboration events.
  2. Multi-channel Delivery: Support notifications via w...
Capacity Estimation

Given the scale of Canva with hundreds of millions of users:

  • Active Users: Assume 200 million active users.
  • Events per User per Day: Estimate 10 events per user (comments, mentions, etc.),...

Submit Your Answer
Markdown supported

Related Questions