Design a Real-Time Permissions and Sharing System
Last updated: April 5, 2025
Quick Overview
Design a permissions system for Canva that handles design sharing, team access control, folder hierarchies, and real-time permission propagation at scale.
Canva
April 5, 202510
5
2,678 solved
Design a permissions system for Canva that handles design sharing, team access control, folder hierarchies, and real-time permission propagation at scale.
As Canva grows into enterprise markets with Canva Teams, permission management becomes increasingly complex. The system must handle individual sharing, team-based access, folder hierarchies with inheritance, public/private visibility, and real-time permission changes that immediately affect active editing sessions.
What the Interviewer Expects
- Design an access control model supporting user, team, and organization-level permissions
- Handle permission inheritance through folder hierarchies efficiently
- Ensure permission changes propagate to active editing sessions in real time
- Design for both simplicity (individual users) and complexity (enterprise teams)
- Discuss permission checking performance at high QPS
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 a team admin revoking edit access for a user who is currently editing a design?
- How would you implement shareable links with different permission levels?
- How would you audit who accessed what and when for enterprise compliance?
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
- User Permissions: Users can share designs with other users and set permissions (view, edit, comment).
- Team Permissions: Teams can have predefined roles (Admin...
Capacity Estimation
To estimate capacity, consider:
- User Base: Assume 10 million users with 1% active users at peak (100,000 users).
- Active Sessions: Each user may have 5 active sessions, leading to 500,000...