Archicise
Exercise

Design a tRPC API for Collaborative App

Design a tRPC API for a real-time collaborative application like Notion or Figma with documents, comments, and presence.

Functional Requirements

  • Document CRUD and versioning
  • Real-time collaborative editing
  • Comments and threads
  • User presence indicators
  • Permission sharing
  • Activity history

Non-Functional Requirements

  • Sub-second sync latency
  • Conflict resolution
  • Offline support considerations
  • Optimistic updates
  • Efficient diff syncing

Questions to Consider

  • How do you handle concurrent edits?
  • What subscription patterns support presence?
  • How do you structure procedures for optimistic updates?
Your Solution

Document Procedures

Design document CRUD procedures with versioning. Consider optimistic updates, conflict detection, and atomic operations.