At our team, we need to keep record of data through an workflow. At each step, when the data changes, we don't want to lose its previous state because if the workflow takes a step back, that previous state must be restored.
What I ask is, what are the best practices on how to implement this?