Skip to content

ONE QUESTION. YOUR REASONING.

Design a permission system

Design the permission and sharing system for a workspace product: people get roles, share single pages or folders, and nested pages inherit access unless someone overrides it.

System designCollaborationSeniorStaff

YOUR BRIEF

What to work through

Work through a permission system as a spoken system design interview. Start by clarifying the scope, sketch a working design and explain the trade-offs behind your choices.

  • Give users and groups a role in a workspace, such as admin, editor or viewer
  • Share one page or folder with a person or a group, at a chosen level
  • Nested pages inherit access from their parent unless an override is set on them
  • Check whether a user may read, edit, share or administer a resource, on every request
  • List who has access to a page and why, and revoke it

BEFORE YOU START

Constraints to discuss

  • Checks are fast: Google’s Zanzibar answers over 95% of them within 10 ms
  • Highly available: Zanzibar reports over 99.999% across three years
  • A removed user never sees content added after the removal
  • Checks and reads outnumber permission changes by about a hundred to one
  • Every grant and revoke is kept in an audit log
Need a starting point?

Watch for these common gaps as you prepare:

  • Each service checking permissions with its own copy of the rules
  • Copying grants onto every child page, so moving a folder or removing a person rewrites thousands of rows
  • A cache of check results with a long expiry and no versions, so a removed user keeps access
  • Ignoring groups inside groups
  • No answer for which wins when a page has an override and its parent a broader grant
Read: System design questions and who asks them

Why this question is in the collection

These sources connect the problem to company interview reports or preparation guides. They do not guarantee what a company will ask you.

KEEP GOING

Your next question

Storage, files and linksDesign BitlyInfrastructure and platformDesign a rate limiterInfrastructure and platformDesign an A/B testing platformInfrastructure and platformDesign an ad click aggregator
Browse the collection
01

Pick a question

Read the brief and choose what you want to work on.

02

Talk it through

Explain your thinking. Respond to follow-ups. Draw when a design needs it.

03

Find your next improvement

Use the feedback from your interview to decide what to practise next.