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?