Microservices for building an IDE – The innards of JetBrains Rider
summary
JetBrains Rider pairs an IntelliJ JVM UI with a ReSharper .NET back end and uses an open‑source, socket‑based reactive RD protocol to sync view models, not RPC. Models are written in a Kotlin DSL and code‑generated to C#/Java, with versioned changes and hierarchical lifetimes to resolve conflicts. Features run as separate processes (editor, debugger, Roslyn analyzers, WPF preview), which improves isolation and allows remote/docker workflows via the socket‑based view model; the approach is implemented and in production.
AI-written summary · about
chapters (29)
- 0:00Start
- 2:43JetBrains
- 5:08ReSharper IDE
- 6:47Why build a .NET IDE?
- 8:24Cross-platform...
- 11:06Options!
- 12:39Both sides are an IDE...
- 16:44Example: Context actions (Alt+Enter)
- 18:10Example: Inspections and highlighting
- 19:19Example: Writing code
- 20:10Data types aren't that complex...
- 20:40Which protocol do we use?
- 24:30Model-View-View Model (MVVM)
- 25:21Conflict resolution...
- 26:00Conflict conventions!
- 26:40Obligatory diagram Magic! Rider
- 27:18Rider protocol
- 29:20Signal (event)
- 30:05Primitives
- 30:26Hierarchical + lifetimes
- 40:54Two processes!
- 42:22Debugging? Four processes.
- 43:19Multiple processes...
- 44:04Shared view model
- 45:48Unity game engine
- 47:17Model the view as well
- 48:28Multiple machines
- 49:14Every IDE as both a client and server
- 50:25Conclusion
related talks
59mMicroservices for building an IDE – The innards of JetBrains Rider
50mMicroservices for building an IDE
54mBuild software like a bag of marbles, not a castle of LEGO®
08h 36mJetBrains .NET Days Online 2022. Day 1
52mReactive Systems with Eclipse Vert.x and Kubernetes
46mBuilding Microservices with Helidon and Kotlin
56mModern Java microservices in the Cloud!
35mDeploy and update microservices on the fly with Eclipse Cloud DevTools
