Skip to content

Fix BoundaryAggregate default stream identity#4588

Merged
jeremydmiller merged 2 commits into
masterfrom
fix/boundary-aggregate-default-stream-identity
May 29, 2026
Merged

Fix BoundaryAggregate default stream identity#4588
jeremydmiller merged 2 commits into
masterfrom
fix/boundary-aggregate-default-stream-identity

Conversation

@mysticmind
Copy link
Copy Markdown
Member

Match SG TId=string for [BoundaryAggregate] in EventGraph.Build<TDoc>

The JasperFx SG emits IGeneratedSyncEvolver<TDoc, string> for boundary aggregates (#324). EventGraph.Build<TDoc>() was picking TId from StreamIdentity, so under the default AsGuid the runtime built SingleStreamProjection<TDoc, Guid> and FetchForWritingByTags<TDoc>(...) threw No source-generated dispatcher found .... Force TId=string when [BoundaryAggregate] is present, regardless of StreamIdentity.

Existing dcb_boundary_aggregate_fetch_for_writing_tests only covered StreamIdentity.AsString; added a sibling fixture for the default-Guid path.

Also a little unrelated .gitgnore entry (was sitting in my local commit)

The JasperFx SG emits IGeneratedSyncEvolver<TDoc, string> for boundary
aggregates (#324). EventGraph.Build<TDoc>() was picking TId from
StreamIdentity, so under the default AsGuid the runtime built
SingleStreamProjection<TDoc, Guid> and FetchForWritingByTags<TDoc>(...)
threw "No source-generated dispatcher found ...". Force TId=string when
[BoundaryAggregate] is present, regardless of StreamIdentity.

Existing dcb_boundary_aggregate_fetch_for_writing_tests only covered
StreamIdentity.AsString; added a sibling fixture for the default-Guid path.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants