Design a collaborative spreadsheet backend
Company: Salesforce
Role: Machine Learning Engineer
Category: System Design
Difficulty: medium
Interview Round: Onsite
Design a web-based spreadsheet service similar to Google Sheets, with emphasis on backend architecture and data models.
Focus areas:
- Multiple users can view and edit the same spreadsheet concurrently.
- The system must support large spreadsheets and efficient load and save behavior.
- Users expect autosave, version history, and snapshot or backup support.
- The design should cover API shape, storage choices, consistency model, concurrency control, and database tables or schemas.
Discuss how you would represent workbooks, sheets, cells, formulas, edit operations, snapshots, and permissions. Explain trade-offs between different storage and synchronization approaches.
Quick Answer: This question evaluates a candidate's ability to design backend architecture, data models, API shape, concurrency control, consistency models, and storage strategies for a web-based collaborative spreadsheet with autosave, versioning, snapshots, and permissions.