Replay Taxonomy
Five different things are sold as "replay", and one of them is verified re-execution.
Trace inspection scrolls back through what was logged. Re-run sends recorded inputs to a live model again — and may get different results, because a re-run makes fresh, live model calls. Cassette playback serves saved responses to tests, with no ordering guarantees, no divergence detection, and no integrity story. Durable-execution replay rebuilds workflow state from a journal so execution can continue after a crash. Verified replay — BitExact — re-executes your code against the cryptographically verified record, serves every value the record kept bit-exactly with zero network calls, and halts with the exact step and a diff the moment reality differs from the record. A value the capture policy scrubbed or a redaction removed is never guessed: replay refuses that step unless you ask it to serve the scrubbed form.
| Trace UI | Re-run | Cassette | Durable execution | Verified replay (BitExact) | |
|---|---|---|---|---|---|
| Zero model calls during replay | yes | no | yes | yes | yes |
| Bit-exact reproduction guaranteed | n/a | no | unordered | orchestration only | yes, of every value kept |
| Divergence detected and located | no | no | no | a non-determinism error | exact step + diff |
| Tamper-evident record | no | no | no | no | chain + signatures |
| Independently verifiable by a third party | no | no | no | no | open verifier |
| Works without rewriting the agent | SDK | framework | test-only | workflows | wrap |
These layers compose rather than compete: BitExact records inside Temporal activities, behind existing gateways, and alongside trace UIs — it is the evidence layer, not a replacement for orchestration or observability.