Skip to content

ONE QUESTION. YOUR REASONING.

Design presence and live cursors

Design presence for a collaboration app: show who is online, who is looking at the same document right now, and everyone’s cursor moving live.

System designCollaborationMid-levelSenior

YOUR BRIEF

What to work through

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

  • Show whether a user is online or offline, and when they were last seen
  • Show who is viewing a document right now
  • Show each viewer’s cursor moving live
  • Someone opening a document sees everyone present at once, then each change

BEFORE YOU START

Constraints to discuss

  • Presence changes reach viewers in under 200 ms at p99
  • A drop of a few seconds does not flip someone offline and back
  • Cursor positions are never stored: losing one costs nothing
  • Millions of users online at once, with thousands of status changes a second
  • Rooms of tens of thousands of users do not flood every client
Need a starting point?

Watch for these common gaps as you prepare:

  • Marking a user offline the moment the connection drops
  • Writing cursor positions to a database
  • Sending every status change to every user
  • One message per mouse move, with no throttle or batching
  • Presence entries that never expire, so crashed clients stay online forever
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.