This document discusses using the AASM gem to implement finite state machines in Ruby. It shows how to define a state machine on a service object called AccountManager to manage the step-by-step creation of an Account model. The AccountManager handles validation and state transitions between steps 1, 2, 3 and finished. This separates the state machine logic from the Account model for better structure, maintenance and testability compared to defining the state machine directly on the Account model.