Repository navigation
Stratara 4.4.6
A host on the Orleans execution model can now wait until a projection has applied what it committed, instead of
reading its read model and hoping the projection is through. Additive; no schema change and no migration.
Added
IProjectionProgress(Stratara.Abstractions), registered byAddStrataraProjectionGrains().
MarkAsync()returns aStoreMarkthat covers every entry committed at the time of the call, in every partition
— on PostgreSQL also an entry that committed while another write was still open.WaitAsync(projection, mark, timeout), with the projection named by its type or its framework name, answers with aProjectionWaitResult:
Reachedonly once the projection has applied every entry the mark covers; otherwise, at the limit,Stalled,
SuspendedorTimedOutwith the partitions behind;MarkNotApplicableat once for a mark taken under another
reader or partition count. A rebuild or a full replay during a wait is waited through; an unknown projection is
refused. See Read your own write in the projection guide.ICommittedPositionReader.CommittedHeadAsync, the highest position the store shows as committed. The default
answersHeadAsync; the native PostgreSQL reader answers it without the horizon its head is held back to. A
reader of your own that holds its head back overrides it.
Upgrade notes
- Adopt the wait once every silo runs this release: a silo of an earlier version does not answer it, and a wait
whose partition lives there fails with the grain call's error.