~/talk

No Touchy! A Case Study of Software Architecture with Immutable Objects

Talkat CppCon 2020 · 2020-09-14..09-18· [concurrency, software-architecture]
links:none on file
slides:none on file

ViewRay builds a C++17 multi‑process, multi‑thread control stack for MRI‑guided radiotherapy that uses React‑Redux style immutable state so every change is a shallow copy with lockless detaches and synchronized write transactions. The implementation ships as the cusco library (ibob/cusco), supports tens of state updates per second, vastly simplifies unit/integration testing and state serialization, and survives aborted/outdated worker results by discarding them. It struggles with large in‑memory images (frequent copies, reallocations, cache misses) and requires custom container/allocator workarounds for voxel‑level mutations.

AI-written summary · about

  1. 0:00Introduction
  2. 0:51Live demo of cancer treatment
  3. 2:30Treatment optimization
  4. 5:31Innovative treatment delivery
  5. 6:21Architecture overview
  6. 8:03Service and worker breakdown
  7. 9:25Object wrapper design
  8. 10:48Implementing copy-on-write
  9. 12:38Object handles and atomic operations
  10. 15:44The immutable object pattern
  11. 18:34Terminology and detach mechanics
  12. 21:09React.js comparison
  13. 22:53State splicing and reflection
  14. 25:03Benefits of immutable state
  15. 26:58Unit testing and verification
  16. 29:32Time-travel debugging
  17. 31:27C++ implementation details
  18. 34:09Refining node structure
  19. 36:26Cusco library features
  20. 39:20Handling large data structures
  21. 41:43Custom containers and allocation
  22. 44:40Limitations and workarounds
  23. 45:40Query system for reuse
  24. 47:52Action and Redux implementation
  25. 50:14State guards and validation
  26. 52:17Memoized guards and observers
  27. 53:26GUI and user interactions
  28. 55:02Worker management and logic
  29. 57:23Conclusion and Q&A
  30. 59:16Technical Q&A
~/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.