This is a presentation on Ruby concurrency I gave at RubyConf 2013 and Cascadia Ruby 2013.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Presentation: Concurrent Ruby

NOTE: This presentation pre-dates the API changes in the 0.5.0 release. Now that we're fast approaching a 1.0 release, nothing in this presentation is likely to be accurate. Except for some of the abstract concepts. Maybe.

Please do NOT expect any of this code to work with the current version of the gem.

-- Jerry

This is a presentation on Ruby concurrency I've given at several conferences and meetups in the fall of 2013. Tags mark the version of the presentation used at each conference/meetup. All the source code examples in the latest version of the presentation use my Concurrent Ruby gem.

Here is the conference/meetup list thus far:

Presentation Abstract

Rumor has it that you can't write concurrent programs in Ruby. People once believed that the world was flat and we all know how that turned out. Between the native threads introduced in MRI 1.9 and the JVM threading available to JRuby, Ruby is now a valid platform for concurrent applications. What we've been missing--until now--are the advanced concurrency tools available to other languages like Clojure, Scala, Erlang, Java, and Go. In this session we'll talk about the specific challenges faced when writing concurrent applications; we'll explore modern concurrency techniques such as agents, futures, promises, actors, supervisors, and others. We'll use various open source tools to craft safe, reliable, and efficient concurrent code.

Sample Code

All of the source code shwon in the presentation is available in the code folder of this repo. It has all been tested in IRB running under MRI 2.0. It should work fine under MRI 1.9 and above and both JRuby and Rubinius running in 1.9 mode. As always, YMMV.


All source code in the code folder is Copyright © 2013 Jerry D'Antonio. It is free software and may be redistributed under the terms of the MIT license.