~/talk

Microservices for building an IDE – The innards of JetBrains Rider

Talkat NDC Sydney 2019 · 2019-10-14..10-18· [microservices]
slides:none on file

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

  1. 0:00Start
  2. 2:43JetBrains
  3. 5:08ReSharper IDE
  4. 6:47Why build a .NET IDE?
  5. 8:24Cross-platform...
  6. 11:06Options!
  7. 12:39Both sides are an IDE...
  8. 16:44Example: Context actions (Alt+Enter)
  9. 18:10Example: Inspections and highlighting
  10. 19:19Example: Writing code
  11. 20:10Data types aren't that complex...
  12. 20:40Which protocol do we use?
  13. 24:30Model-View-View Model (MVVM)
  14. 25:21Conflict resolution...
  15. 26:00Conflict conventions!
  16. 26:40Obligatory diagram Magic! Rider
  17. 27:18Rider protocol
  18. 29:20Signal (event)
  19. 30:05Primitives
  20. 30:26Hierarchical + lifetimes
  21. 40:54Two processes!
  22. 42:22Debugging? Four processes.
  23. 43:19Multiple processes...
  24. 44:04Shared view model
  25. 45:48Unity game engine
  26. 47:17Model the view as well
  27. 48:28Multiple machines
  28. 49:14Every IDE as both a client and server
  29. 50:25Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.