Distributed Fizz Buzz: Passing the Microservices Interview
summary
A FizzBuzz microservice in Ruby becomes a concrete example of event‑sourced autonomy: commands (TakeTurn) publish events (TurnTaken, TurnRejected), projections rebuild game state, and optimistic concurrency guards writes. A live REPL demo runs the service and accepts turns, but initial code lacks deduplication so duplicate or out‑of‑order messages break it; the fix is explicit: event sourcing, idempotent key pattern, reservation pattern and sequence number pattern to handle retries, ordering and exactly‑once impossibility. Containers are optional.
AI-written summary · about
chapters (21)
- 0:00Intro
- 0:34Rules of Fizz Buzz
- 1:15Origins of Fizz Buzz
- 1:53Fizz Buzz Example
- 3:12Fizz Buzz Rules
- 3:52Networks
- 5:39Synchronous Requests
- 5:53Out of Date Data
- 6:15Message Objects
- 7:24Take Turn
- 7:58Entity
- 9:09Command Handler
- 11:16Projection
- 12:20Event Handlers
- 13:28Live Demo
- 14:38Distributed Systems fallacies
- 15:00Idempotence
- 15:14Negotiations
- 20:49Distributed Systems
- 21:38Myths
- 22:30Workshop
related talks
11mSpinning up micro-services using Ruby/Kafka
48mChallenges in Implementing MicroServices
16mMicroservice Challenges
30mEvented Autonomous Services in Ruby
11mSpinning up micro-services using Ruby/Kafka
35mMicroservices: From dream to reality in forty five minutes
50mChallenges in Implementing Microservices
27mScaling a Rails Monolith w/Event Driven Microservices
