Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Microservices are great, but I think we can all agree: we need more of them and they should be micro-er. What's the logical limit here? What if every object was remote in a language where everything's an object? Let's take a look at dRuby, the distributed programming module you've never heard of, and use it to achieve that deranged goal! You'll learn about a nifty little corner of the standard library while we attempt to reach the illogical conclusion of today's hottest architecture trend. Be warned: those sitting in the first few rows may get poorly-marshaled data on them.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the talk titled "Everything a Microservice: The Worst Possible Intro to dRuby," presented by Kevin Kuchta at RubyConf 2022, the concept of microservices is humorously explored and taken to an absurd extreme. The video addresses the popularity of microservices and humorously argues that every object in Ruby should function as a microservice, thereby radically extending the microservice paradigm. **Key Points Discussed:** - **Introduction to Microservices:** Microservices are defined as smaller, modular services compared to regular ones, which have gained popularity in recent years. - **Extrapolation of Microservices:** The speaker posits that if smaller services are better, an optimal microservice in Ruby should encapsulate an individual object, making everything from strings to integers microservices. - **Introduction to dRuby:** dRuby, a distributed programming module in Ruby, is introduced as a means to achieve this lofty goal by enabling remote object communication. - **Setting Up dRuby:** Kuchta explains the basic setup of dRuby, emphasizing the client-server architecture that allows local scripts to interact with remote scripts. - **Problems with dRuby:** While demonstrating dRuby, the limitations are acknowledged, particularly regarding the need to explicitly configure remote method calls. To address this, he introduces the concept of a `RemoteNewer` class to create remote instances dynamically. - **Serialization Challenges:** Throughout the talk, the challenges of serializing complex objects and Procs are explored, leading to solutions for allowing block serialization using Ruby's Marshal module alongside custom methods for serialization and deserialization. - **Extreme Extended Architecture:** Kuchta jokes about completely overriding Ruby's built-in `new` methods so every object created returns a remote proxy instance, ultimately implementing an absurd architecture to run multiple microservices across AWS Lambda. - **Final Thoughts on Complexity:** The talk concludes with a reflection on the complexity and inefficiency introduced by this architectural choice, humorously admitting that while it showcases the extremes of microservice design, it is impractical for real-world applications. **Conclusions and Takeaways:** - The talk serves as a satirical take on the microservices trend, emphasizing that while distributing every object as a remote service theoretically adheres to microservice principles, it creates significant overhead, complexity, and increased costs. - Kuchta emphasizes that the joy of building such an outrageous system is outweighed by its impracticality, suggesting that simpler, more traditional monolithic architectures might be preferable in practice. Ultimately, the audience is encouraged to appreciate the humor in pushing software architectural principles to their limits.
Suggest modifications
Cancel