Ruby Video
Talks
Speakers
Events
Topics
Leaderboard
Sign in
Talks
Speakers
Events
Topics
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Keep Ruby Weird 2018 - Distributed Fizz Buzz: Passing the Microservices Interview by Nathan Ladd & Scott Bellware Scott Bellware is a short, bald man with 25 years of experience who works with development teams who have completely screwed themselves into an intractable mess of tightly-coupled monolithic madness by paying attention to cute people rather than smart people. Scott is a contributor to the Eventide toolkit for event-sourced, autonomous services in Ruby, but Scott does it better than Nathan, and he’s totally not bitter.
Date
Summary
Markdown supported
The video titled 'Distributed Fizz Buzz: Passing the Microservices Interview' features Nathan Ladd and Scott Bellware discussing how the classic FizzBuzz coding challenge can be adapted to fit a microservices architecture context. - **Introduction to FizzBuzz**: The FizzBuzz challenge is introduced as a common programming task during job interviews, where participants count from 1 to 100, outputting 'Fizz' for numbers divisible by 3, 'Buzz' for numbers divisible by 5, and 'FizzBuzz' for numbers divisible by both 3 and 5. The origin of FizzBuzz is mentioned, transitioning from a drinking game to a children's game. - **Distributed FizzBuzz Concept**: The speakers propose a scenario where FizzBuzz is played in a microservices environment, simulating multiple clients submitting answers to a service. The service manages the game state and publishes events based on client submissions, introducing the complexities inherent in distributed systems such as message reliability and network issues. - **Design Principles for Distributed Systems**: Key principles are discussed, including the need for microservices to handle failures gracefully. Emphasis is placed on avoiding direct synchronous interactions and instead using command and event messages to manage game flow. - **Code Demonstration**: The presenters discuss the structure of command and event messages, game entities, and the processing of messages within a microservices architecture. They demonstrate how to implement core logic using an example while stressing the importance of understanding optimistic concurrency and event sourcing. - **Challenges Addressed**: The team identifies the potential pitfalls when scaling the FizzBuzz implementation due to issues like message ordering and idempotence. They introduce design patterns such as the Idempotence Key pattern, the Reservation pattern, and the Sequence Number pattern to ensure system reliability. - **Interactive Conversation**: Mid-presentation, Nathan engages Scott in a dialogue about the practical implications of microservices architecture, questioning the common overreliance on specific programming languages. They also cover the significance of understanding APIs and messaging in achieving service autonomy. - **Conclusion and Workshop Promotion**: The video concludes with a stress on the ongoing need for learning and collaboration in mastering distributed systems, along with a promotion for an upcoming workshop on scalable system development in Ruby, which offers attendees extensive insights into building robust microservices. Overall, this presentation provides a comprehensive examination of implementing FizzBuzz within a microservices framework, discussing both practical coding strategies and design considerations to avoid common pitfalls in distributed systems.
Suggest modifications
Cancel