Chad Remesch bio photo

Chad Remesch

Entrepreneur, developer, and software engineer

Email LinkedIn Github

Recently I've created two new Ruby gems known as Workers and Tribe.

The Workers gem turns low-level operating system threads into simple to use event-driven workers and worker pools.  This allows you to focus on message passing instead of complex thread management.  As an added bonus, it includes a timer system that can tell your workers to execute work in the future.

The Tribe gem builds on top of Workers in order to implement the actor model. It specifically focuses on event-driven actors such that each thread manages one or more actors.  This way the system can support many more actors than is possible with implementations that force a 1:1 thread to actor relationship.  A simple benchmark demonstrating one million actors using 20 threads can be found on the performance wiki page.

Both gems have been tested with MRI Ruby 1.9.3 and JRuby 1.7.  Due to MRI's thread limitations, it is highly recommended that you use JRuby if you are concerned about multi-core CPU performance.

Inspiration comes from Erlang, Scala, Akka, and Celluloid