~/talk

Actors in Ruby! Why let Elixir have all the fun?

Talkat RubyConf AU 2017 · on Thursday, 2017-02-09· [ruby]
slides:none on file

Claim: Ruby can run an actor model for real workloads rather than just handwavy examples. Implementation detail: Celluloid gives proxies, async calls, finalizers, linking and supervisors, pools and a supervision container so crashed actors restart instead of corrupting shared state. Limits: the GIL blocks true CPU parallelism but IO releases the lock so actors help with network/file-bound jobs. Scale example: a demo uses 2 helpers but the pattern scales to 10–30 workers; related production pieces include NIO4r and DCell.

AI-written summary · about

  1. 0:00Intro
  2. 0:45We use it every time we interact with computers
  3. 4:23Process forks the brute force approach
  4. 5:41Irrational fear of Threads
  5. 5:56Deadlocks! Impossible Bugs! Racing Conditions!
  6. 6:43The problem is controlling Mutable Shared State
  7. 6:55Mutexes, Conditional Variables and Monitors are too clunky
  8. 7:36Imagine a normal OC system with 2 key differences
  9. 8:04All method calls are Asynchronous
  10. 8:22That's an Actor System
  11. 11:36No Shared State!
  12. 12:22retention and protection and hiding of state. and extreme late binding of all things.
  13. 13:32More than a concurrency model, a programming model
  14. 14:14Concurrent-Ruby Celluloid
  15. 15:45Going back to our ticket prices example
  16. 17:41What about exceptions? How those actors qet GCed?
  17. 18:47Manually handling actors is not fun
  18. 21:19Just like Thread Pools or Connection Pools
  19. 22:29Supervisors
  20. 23:28Supervisor Configs
  21. 27:58might be part of Ruby 3
  22. 28:12Concluding
~/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.