135Design Google Sheets: virtualized cells, formulas, dependency graphs, and editing
hardAbout 60 minutesSystem designspreadsheetsvirtualizationdependency-graphcanvassystem-design
Problem
Design the frontend of a spreadsheet like Google Sheets:
- a grid with up to 1 million rows and hundreds of columns that scrolls smoothly;
- cells with values and formulas (
=SUM(A1:A100),=B2*C2) that recalculate instantly when inputs change; - editing, selection, copy and paste of ranges, undo and redo, resizing rows and columns, freezing headers;
- collaboration with other users editing the same sheet.
Explain how to render the grid, store sparse data, parse and evaluate formulas, keep a dependency graph for incremental recalculation, and handle large edits.
Step-by-step
The model stores cell inputs sparsely; the calculation engine parses formulas, tracks dependencies and computes values; the view renders only visible cells. Each can then be optimised and tested on its own.
Unlock the full solution
What's inside
- Step-by-step
- Requirements
- Architecture
- Data model and state
- Key flows and trade-offs
- Performance and reliability
- Follow-up questions
Includes 2 code listings, 5 follow-up questions.
One-time payment by UPI, card or net banking. Launch price.