Know which version each run uses
Record a definition version or release identifier with every execution so operators can tell which logic produced a result. Review whether edits affect only new runs, waiting steps, retries, or every future transition in an existing run.
If behavior changes midway through a multi-step process, different runs may combine old and new logic. Identify any data contract or external side effect that would make such a mixture unsafe, and choose a migration or drain strategy.
Roll out and recover deliberately
Test the new definition on representative inputs and a controlled run before directing normal traffic. For stateful workflows, plan whether to let old runs finish, cancel and restart them, or migrate their state using a documented mechanism.
Monitor both versions during rollout and define how to stop or revert the change. Keep enough execution history to diagnose which definition handled a failed run and avoid retrying it under a different version without checking side effects.