Author: Mark Bates
Publisher: Addison-Wesley Professional, 2009
Aimed at: Intermediate Ruby developers
Pros: Logical and well-written
Cons: Niche topic
Reviewed by: Ian Elliot
This is rather a niche book. To be interested in it you have to program in Ruby (quite well) and want to create distributed applications using either DRb or Rinda.
OK so let's suppose you fall into the right category. The book starts off with a chapter each on DRb and Rinda. Oddly Java RMi is used to motivate the example and if you haven't a clue as to what Java is all about this might not be helpful. Fortunately the descriptions and explanations are clear enough for you to follow and the author manages to make it all seem simple and straightforward which is quite an achievement for a subject that can be presented as rocket science. These two chapters make up the first part of the book on the core libraries and these are dealt with in 76 pages.
Part II is an explanation of third party libraries - RingyDingy, Starfish, Distribunaut and Politics. Each one has a chapter to itself where its basic workings are explained by usually small examples.
Part III tackles the big topic of distributed message queues. It starts off with Starling and answers the question "What is a Distributed Message Queue?". Then it goes on to deal with AMQP/RabbitMQ. Again the basic ideas are introduced and some small examples are given.
The final part of the book is on the use of Rails with distributed Ruby. Two chapters cover BackgroundDRb and Delayed Job.
It is very strange to encounter a book that devotes just a single chapter to each of four Ruby libraries concerned with some aspect of distributed programming but as an overview it works very well. It is a logical and very well written approach to the task.
There isn't really much more to say. If you are interested in distributed programming with Ruby then you need a copy of this book - unless you are an expert already.