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
System Design
Software Engineer
Canva
April 5, 2025
Software Engineer
System Design
System Design
Medium

10

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
Access control models (RBAC, ABAC, ReBAC)
Permission inheritance and hierarchy traversal
Real-time permission propagation
Caching permission decisions
Audit logging for compliance
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 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 Problems
Sample Answer
Access Control Model

Use a relationship-based access control (ReBAC) model inspired by Google Zanzibar. Permissions are expressed as relationships: (user:alice, editor, de...

Inheritance and Performance

Folder permission inheritance uses a materialized path approach. Each resource stores its ancestor chain (e.g., /org:canva/folder:marketing/folder:q3-...


Submit Your Answer
Markdown supported

Related Questions