Skip to content

A Case of Accidental Concurrency #35

wants to merge 1 commit into from
40 seancribbs-a-case-of-accidental-concurrency/
@@ -0,0 +1,40 @@
+# A Case of Accidental Concurrency
+Concurrency is all the rage these days, and people can't seem to agree
+whether Threads, Fibers, event loops, or actors are the best
+solution. But did you ever consider that your *sequential* Ruby
+program might be concurrent, with nary a Thread, Fiber, or callback in
+sight? Well, it happened to me.
+This is the story of how accidental concurrency (also known as
+re-entrancy) broke my brain multiple times over the course of two
+years, spawned flamewars on Twitter, long blog posts, and the various
+solutions I took to solve the problem. Along the way we'll illuminate
+some subtleties of concurrent programming in Ruby, differences between
+several Ruby implementations, and how we can all write code that is
+friendlier when accidental concurrency strikes.
+## Sean Cribbs
+Sean is a Software Engineer for Basho Technologies, where he hacks in
+Ruby, Erlang, and JavaScript (and occasionally Python) on the client
+interfaces to Riak, Basho's distributed, fault-tolerant database. A
+prolific open-source author and contributor, he maintains
+Webmachine(-Ruby) and Ripple, and previously maintained Radiant CMS.
+- [Website](
+- [Twitter](
+- [Github](
+- "Resources, For Real This Time", given at RubyConf '11, RubyConf
+ Uruguay '11, NYC.rb:
+ [(video)](
+ [(slides)](
+ [(slide source and code)](
+- "Embrace Eventual Consistency and NoSQL with Ripple", given at
+ RubyConf Argentina '11:
+ [(slides)](
+- "Wrap your SQL Head around Riak MapReduce", given at
+ [Berlin Buzzwords '11](,
+ [StrangeLoop '11](
+ [(slides)](
+ [(slide source)](
BIN seancribbs-a-case-of-accidental-concurrency/profile_picture.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Something went wrong with that request. Please try again.