Release v16.0.6
Summary
A cross-stream [Join] whose join key is populated by AutoMap (a name-matched foreign key, no explicit [SetFrom]) did not backfill its joined value when the row was created after the join-source event already existed — the common production ordering, where a slowly-changing dimension is activated before the higher-frequency fact that references it.
SetupJoinsForFromDefinition wired the row-creation-time backfill (ResolveJoin) only when the join's on column appeared in the raw fromDefinition.Properties — i.e. an explicit [SetFrom] mapping. An AutoMapped join key is absent from that set, so the backfill was never wired and the value only resolved when the join source arrived after the row. The fix gates the wiring on the AutoMap-merged From properties (GetMergedFromProperties, the same set SetupFromDefinition projects with) and threads the from-event's EventType through so that set can be computed.
Fixed
- A model-bound
[Join]whose key is an AutoMapped foreign key now resolves its joined value when the read-model row is created after the join-source event already exists. Previously these columns were left empty whenever the join source (e.g. an activated engagement) preceded the row-creating fact (e.g. an approved timesheet) — the common production ordering.