Making a desktop IDE distributed and collaborative
summary
Transforms the IntelliJ platform so a full desktop IDE runs as a backend serving multiple clients (used for Code With Me and Remote Development/Gateway), keeping millions of lines of existing code intact by inserting a thin synchronizer layer that streams granular events (per keystroke), uses optimistic updates with versioned edits and server-as-single-source-of-truth, separates and multiplies UI/state (editors, tool windows, undo stacks) and tracks origin via client_id thread-local while rendering on the client through UI transformers; system works but shows observable typing/brace latency under high network delay.
AI-written summary · about
chapters (19)
- 0:00Distributed collaborative IDEs
- 2:30JetBrains IDEs remote use
- 6:02Remote IDE goals and challenges
- 7:29How modern IDEs work under the hood
- 11:22Remote IDE requirements
- 13:08IDE split point for remote
- 16:19Synchronizing IDE UI
- 21:21IDE sync building blocks
- 23:09Synchronous APIs in distributed
- 25:59Optimistic updates and latency
- 33:48Conflict resolution in IDEs
- 36:36Single-user remote challenges
- 37:59Multi-user state management
- 40:31Tracking user actions
- 44:48State split for collaboration
- 48:18UI for remote IDEs
- 53:21Remote JetBrains IDE architecture
- 56:32Future plans and challenges
- 58:40Q&A remote IDEs vs VS Code
related talks
58mWish You Were Here: Stories of Building a Remote Development IDE
01h 01mWish you were here: stories of building a remote development IDE
28mEmbracing Remote Development for Local IDEs
59mCode With Me – Behind the Scenes
50mMicroservices for building an IDE
45mContaining Your Development – Why Cloud IDEs Are the Future
37mEclipse Dirigible's WebIDE - Deep Dive
17mThe Future of Cloud Development is Editor Neutral
