Interface IWorkflowStorage
The Layer 0 workflow storage contract (ARCHITECTURE.md §4.1). The contract ships and is conformance-tested in 0.1; the engine that drives it lands in 0.3.
public interface IWorkflowStorage
Methods
- AddBookmarkAsync(BookmarkRecord, CancellationToken)
Records that an instance is waiting for a signal.
- ConsumeBookmarkAsync(string, string, CancellationToken)
Atomically consumes (removes and returns) the oldest matching bookmark — ordered by CreatedAt, then Id — or returns null when none match. At-most-once under arbitrary concurrency (§4.2.4): a signal resumes exactly one waiting instance.
- CreateInstanceAsync(WorkflowInstanceRecord, CancellationToken)
Stores a new instance with
Revision = 1; duplicate id throws MillraceConcurrencyException.
- GetInstanceAsync(WorkflowInstanceId, CancellationToken)
Reads one instance, or null if it does not exist.
- UpdateInstanceAsync(WorkflowInstanceRecord, long, CancellationToken)
Optimistic-concurrency replace: throws MillraceConcurrencyException unless the stored revision equals
expectedRevision(a missing instance is the same failure — providers must not distinguish); on success storesRevision = expectedRevision + 1.