Repository navigation
JasperFx 2.58.0
Minor bump: two of the three changes are things a consumer will notice on upgrade.
Changes
- #719 —
VariableSource.Existing, a lookup that never manufactures (wolverine#4198). New API, additive. - #722 —
TenantedEventSlicer.SliceAsync(EventRange)now honorsForceSingleTenancy(#721). Behavior change. - #720 — the DCB compliance suite now covers an identity-less
[BoundaryAggregate](#718).
Upgrade notes
#722 changes async projection grouping on Marten. ForceSingleTenancy was honored by SliceAsync(IReadOnlyList<IEvent>) but ignored by SliceAsync(EventRange) — and the async daemon reaches only the latter. Marten has been setting the flag since the wolverine#2053 / marten#4085 fix, so on this bump that fix takes effect on the daemon for the first time.
Concretely: on a single-tenanted store whose event rows carry mixed tenant_id values, an async single-stream projection now folds the stream into one aggregate instead of several partial ones. Conjoined stores are unaffected, and single-tenanted stores with clean rows already produced a single group. See marten#5305 for the Marten-side follow-up.
Polecat and Fisher do not pick this up — their SingleStreamProjection<TDoc,TId> subclasses are empty class bodies and never set the flag (polecat#526, fisher#139). #723 tracks hoisting the determination into the shared base so all three stores get it.
#720 adds two compliance facts that fold an identity-less [BoundaryAggregate] with events present — coverage that did not exist because every DCB aggregate in the suite happened to carry an Id, so a store could require a single-stream identity for a boundary aggregate and pass the whole suite. Both stores that had that bug have since fixed it — Fisher in 1.0.5 (fisher#135) and Polecat in 5.21.0 (polecat#521) — so on current versions these facts should pass everywhere. They are a regression guard, not a new demand.