Julik deliberately avoids storing a state blob inside workflows: the moment you allow mutable state on the workflow you have to answer hairy questions about which version a resumed step sees. Meaningful state changes belong on normal Rails models — use paper_trail on the hero for history. Geneva Drive preserves every step_execution, which already acts as a log of what the workflow did and when.