Skip to content

JasperFx 2.58.0

Choose a tag to compare

@jeremydmiller jeremydmiller released this 31 Aug 17:36
· 169 commits to main since this release

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 honors ForceSingleTenancy (#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.