The Bottom Line
Distributed Programming with Ruby by Mark Bates is a broad look at all options available for distributed programming with Ruby. Though the book covers many libraries (those included with Ruby as well as via RubyGems), it still covers the underlaying technologies and gives valuable background information. In short, Distributed Programming with Ruby packs a powerful punch in its 250 or so pages. Anyone working with distributed programming in Ruby will want this book.
- Covers a wide range of libraries
- Also covers libraries included with Ruby well
- Gives good background information
- Is not an in-depth guide to any of the libraries
- Could have easily been expanded to include more examples and background information
- Ch. 1: Distributed Ruby (aka DRb), the primary method of using Ruby in a distributed manner.
- Ch. 2: Rinda, a Ruby port of Linda, which helps Ruby clients find their servers.
- Ch. 3: RingyDingy, a library that makes Rinda a bit easier to use.
- Ch. 4: Starfish, which implements the MapReduce paradigm on top of Ruby, DRb and Rinda.
- Ch. 5: Distribunaut, another library built on DRb and Rinda. Distribunaut helps you share code among a number of servers.
- Ch. 6: Politics, which allows you tell just one server in a cloud to do work.
- Ch. 7: Starling, a distributed messaging queue that will hold on to remote method invocations until a server is free.
- Ch. 8: AMQP/RabbitMQ is another library similar to Starling.
- Ch. 9: BackgrounDRb, a Rails plugin for making DRb requests from your Rails applications without blocking the Rails thread.
- Ch. 10: Delayed Job, another Rails plugin. This does the same thing as BackgrounDRb, but adds a message queue to the mix.
Guide Review - Distributed Programming with Ruby by Mark Bates
Distributed Programming with Ruby is split into four sections. The first explains what's available in the libraries included with Ruby. The second gives a number of RubyGems that extend Ruby's distributed capabilities. The third section focuses on distributed messaging queues, which acts as a kind of middleware or temporary holding for remote method invocations. Finally, the fourth section deals with integrating distributed programming techniques into Ruby on Rails applications.
There's one thing that's certain throughout this book: Mark Bates knows what he's talking about when it comes to distributed programming with Ruby. He's explored all of the libraries presented in this book fully and is the author of one of them (Distribunaut).
It's difficult to say anything bad about this book, but if there is one thing, it's that it didn't go far enough. The book is only 250 pages and covers 10 different libraries. This leaves little room for exploring any of the libraries in depth. It would have been better to seen a larger, more comprehensive book, but each library has its own documentation and the reader and continue learning from there.
All said and done, this is a great book. If you're doing any distributed programming with Ruby, this needs to be on your bookshelf.