Part 1: Standard Library
Chapter 1: Distributed Ruby (DRb)
1.1 Hello World
1.2 Proprietary Ruby Objects
1.3 Security
1.3.1 Access Control Lists (ACLs)
1.3.2 DRb Over SSL
1.4 ID Conversion
1.4.1 Built-in ID Converters
1.4.1.1 DRb::DRbIdConv
1.4.1.2 DRb::TimerIdConv
1.4.2 Building your own ID Converter
1.4.3 Using Multiple ID Converters
1.5 Conclusion
Chapter 2: Rinda
2.1 Hello World, the Rinda Way
2.1.1 Ring Server
2.2 Understanding Tuples and TupleSpaces
2.2.1 Writing a Tuple to a TupleSpace
2.2.2 Reading a Tuple from a TupleSpace
2.2.3 Taking a Tuple from a TupleSpace
2.2.4 Reading All Tuples in a TupleSpace
2.3 Callbacks and Observers
2.3.1 Understanding Callbacks
2.3.2 Implementing Callbacks
2.4 Security With Rinda
2.4.1 Access Control Lists (ACLs)
2.4.2 Using Rinda Over SSL
2.4.3 Selecting a Ring Server
2.5 Renewing Rinda Services
2.5.1 Using a Numeric to Renew a Service
2.5.2 Using nil to Renew a Service
2.5.3 Using the SimpleRenewer class
2.5.4 Building a Custom Renewer
2.6 Conclusion
Part 2: Third Party Frameworks and Libraries
Chapter 3: RingyDingy
3.1 Installation
3.2 Getting Started with RingyDingy
3.3 Hello World, the RingyDingy Way
3.4 Building a Distributed Logger with RingyDingy
3.5 Letting RingyDingy Shine
3.6 Conclusion
Chapter 4: Starfish
4.1 Installation
4.2 Getting Started with Starfish
4.3 Hello World, the Starfish Way
4.3.1 Using the Starfish Binary
4.3.1 Saying Goodbye to the Starfish Binary
4.4 Building a Distributed Logger with Starfish
4.5 Letting Starfish Shine
4.6 Conclusion
Chapter 5: Distribunaut
5.1 Installation
5.2 Blast Off… Hello, World!
5.3 Building a Distributed Logger with Distribunaut
5.4 Avoiding Confusion of Services
5.5 Borrowing a Service with Distribunaut
5.6 Conclusion
Chapter 6: Politics
6.1 Installation
6.2 Working with Politics
6.3 Conclusion
Part 3: Distributed Message Queues
Chapter 7: Starling
7.1 What is a Distributed Message Queue?
7.2 Installation
7.3 Getting Started with Starling
7.4 Hello World, the Starling Way
7.5 Building a Distributed Logger with Starling
7.6 Persisted Queues
7.7 Getting Starling Stats
7.8 Conclusion
Chapter 8: AMQP/RabbitMQ
8.1 What is AMQP?
8.2 Installation
8.3 Hello World, the AMQP Way
8.4 Building a Distributed Logger with AMQP
8.5 Persisted AMQP Queues
8.6 Subscribing to a Message Queue
8.7 Topic Queues
8.8 Fanout Queues
8.9 Conclusion
Part 4: Distributed Programming with Ruby on Rails
Chapter 9: BackgrounDRb
9.1 Installation
9.2 Offloading Slow Tasks with BackgrounDRb
9.3 Configuring BackgrounDRb
9.4 Persisting BackgrounDRb Tasks
9.5 Caching Results with Memcached
9.6 Conclusion
Chapter 10: Delayed Job
10.1 Installation
10.2 Send It Later with Delayed Job
10.3 Custom Workers and Delayed Job
10.4 Who’s On First and When Do They Steal Second?
10.5 Configuring Delayed Job
10.6 Conclusion