Skip to content

JasperFx 2.93.0

Choose a tag to compare

@jeremydmiller jeremydmiller released this 23 Oct 14:49

Highlights

  • Projection start floors (#809, #1068): a rebuild now honours a configured SubscribeFromSequence / SubscribeFromTime floor and seeds the progression row first (it used to replay from 0). There is also a new persisted per-database floor seam on IEventDatabase (FetchProjectionFloorAsync / TrySetProjectionFloorAsync / SetProjectionFloorAsync) and a new AsyncOptions.SubscribeFromFirstRun() strategy. Store implementations: JasperFx/marten#5740, JasperFx/polecat#813, JasperFx/fisher#471.
  • Document diagnostics for CritterWatch: IDocumentStoreDiagnosticsWriter.UndeleteDocumentAsync (#1059, #1062) and DocumentQueryOptions.OrderByMetadata (#1058, #1063).
  • Systemic database failures pause the shard (#1029, #1064): under SkipApplyErrors, a non-transient DbException raised from projection code is no longer dead-lettered event by event. It pauses the shard with ShardFailure.IsTransient = false. ⚠️ This is a behaviour change on Polecat and Fisher. Marten follow-up: JasperFx/marten#5741.
  • CLI: --key=value splits at the first = only, so connection strings passed by WebApplicationFactory no longer produce "Invalid usage" output (#1057, #1060).

Compliance suites

  • New: SoftDeleteCompliance, DocumentMetadataCompliance (#785, #1067) and ProjectionFloorCompliance (#1068). New undelete and metadata-ordering facts in DocumentStoreDiagnosticsCompliance. Everything new is gated off by default.
  • SingleTenantedEventSlicingCompliance is [Obsolete] and will be removed in 3.0 (#727, #1066, #1065).

Other

  • JasperFx.Aspire README, sample SDK and publish-workflow cleanup (#1035, #1061).
  • New scheduled PublishAot gate proving the AOT roots companion end to end, with a negative control (#777, #1069).

Compatibility

No public members were removed or changed. Every member added to an existing interface has a default implementation (verified against 2.92.0 with a public-API diff and the contract ratchet), so stores built against 2.92 keep loading.