Skip to content

Release v19.27.4

Choose a tag to compare

@github-actions github-actions released this 02 Oct 03:33
9803452

Changed

  • Child-only FromEventProperty events now leave the root read model uninitialized on MongoDB, PostgreSQL, SQLite and SQL Server until a root event arrives. Replay rebuilds child-only roots without root initial values; values already materialized are not removed in place. Existing SQL rows are treated as initialized on upgrade to preserve their values, including legitimate nulls; replay them to adopt the new placeholder behavior. (part of #4436)

Fixed

  • Events that change no read-model property, including propertyless events handled by class-level [FromEvent<T>], now create the instance in immediate projections, decision reads, passive GetInstanceById, projection preview, ReadModelScenario and DecisionReadsForTesting, matching materialized projections. (#4434)
  • A root event now persists missing initial values when it initializes a placeholder on MongoDB, PostgreSQL, SQLite and SQL Server, including read models with protected fields, while preserving existing children. On MongoDB this also applies to existing uninitialized placeholders from other child-only events, and initialization is visible to subsequent events during catch-up and replay before bulk writes finish. (part of #4436)
  • Root derivative events that a child also handles now create an initialized root with its initial values. Deferred children no longer resolve against an uninitialized placeholder. (#4436)
  • Read-model queries no longer return the internal __initialized property unless the read model explicitly declares it. (part of #4436)
  • SQL read-model upgrades tolerate concurrent kernel migrations and inserts from older kernels during rolling upgrades. (part of #4436)