Question
Design a browser-based development environment where users can open persistent workspaces, edit files, run programs, and interact with a live terminal. Cover workspace storage, process isolation, scheduling, standard-output streaming, terminal input, reconnect after refresh, dependency setup, and file synchronization. Explain how you prevent one user’s code from affecting another user or the host system. Address cold-start latency, idle-workspace suspension, resource quotas, long-running jobs, failure recovery, observability, and the trade-off between warm capacity and infrastructure cost. ## Follow-ups 1. Support collaborative editing without coupling file consistency to terminal I/O. 2. Add GPU-backed workspaces with scarce-capacity scheduling. 3. Define a migration path when a workspace host fails mid-session.