DRb vs. RabbitMQ Showdown
summary
Company replaces DRb point-to-point RPC with RabbitMQ/AMQP using the ruby amqp gem and EventMachine to gain persistence and decoupling. They move transient FPS/quality stats to lightweight channels and send durable state-change events to durable queues, ensuring messages survive broker or management-node failures. Implementation scales to tens of nodes (up to ~120 messages/sec per heavy node), reduces coupling, adds packaging overhead for RabbitMQ/eventmachine gems, and shows strong throughput and resiliency in testing.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 1:12Elemental Technologies
- 2:18Video streaming use cases
- 5:08Ruby's role in the company
- 6:28Initial architecture with DRB
- 9:03DRB communication examples
- 11:22File transcoding with DRB
- 13:08Live streaming with DRB
- 14:08Challenges with DRB
- 16:08Defining the new solution
- 18:42Adopting a message queue
- 20:23RabbitMQ and AMQP
- 21:40RabbitMQ with Ruby
- 23:23System improvements
- 25:47Final architecture
- 27:10Implementation details
- 28:29Results and conclusion
- 30:21Q&A
related talks
18mRuby Messaging Patterns
41mDecouple all the things: Asynchronous messaging keeps it simple
54mKeynote: Bringing a Ferrari to a Horse Race
44mKeynote: Erlang Powered Rabbits
33mFar and Away (A Tour of DistribRuted Programming with Ruby)
17mFun, interesting and common RabbitMQ use cases
57mReliability Nirvana
41mHow We Rabbit at AWeber
