Talk at wroclove.rb 2019 by Andrzej Krzywda (Arkency). A personal journey from Java's Plain Old Java Objects through Rails' Active Record coupling to splitting aggregates from read models, presented as three concrete implementations of a JIRA-like issue state machine: (1) using Arkency's aggregate_root gem with event sourcing inside the aggregate, (2) a polymorphic implementation with one class per state that returns a new instance on transitions and moves event publishing/sourcing into the command handler, and (3) a duck-typing implementation using respond_to? checks, shrinking the state machine to five small classes. Argues business logic is almost always about state machines, pure business objects shouldn't be infected by libraries or frameworks, and persistence (events or Active Record) can be plugged in later. Announces that Arkency's 'aggregates' repository — previously private and used in the Rails Architect Master Class — has just been made public on GitHub with shared tests and mutation-testing setup, and invites the audience to contribute new implementations.