JournaledDurableTaskStore before constructing DurableTaskSupervisor and DurableRunRecords. The supervisor and record service must use the same wrapped store.
Event replay
Lifecycle events are appended with the task state transition in the same compare-and-set operation.records.append(key, lease, type, data) adds explicit events to the same sequence. The default retained window is 256 events; explicit events are limited to 32 KiB and still count toward the task aggregate bound.
Reads require verified tenant and actor ownership. A cursor before retained history or beyond the current sequence raises DurableEventGapError with retained bounds. Apply application redaction before appending event content.
Snapshots and artifacts
MongoDurableBlobStore stores immutable bounded bytes in a separate collection. records.putArtifact() returns an internal reference, not a public URL. checkpoint() stores finite canonical JSON; snapshot() checks ownership, expiry, size, and digest before returning it.
A snapshot restores data. It does not undo external effects or establish that a driver can resume. Validate recovered data against the immutable task input, manifest, and your host-owned snapshot schema.
Blob persistence happens before the fenced reference commit. Lease loss may leave an unreferenced blob but cannot publish a stale reference. The host owns expiry, garbage collection, backups, and client shutdown. Preserve unresolved action evidence. The reserved agentium.records.v1 extension must not be accepted from external task submissions.
For network replay, see durable protocol bridges.