You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of #5118 (compliance wave growth), epic #5110.
The compliance library asserts async snapshots (AsyncDaemonCompliance) and self-aggregating evolve (SelfAggregatingEvolveCompliance), but nothing yet pins the equivalence of the three lifecycles: the same aggregate registered Inline, Async or Live must produce the same document state, and only the persistence timing should differ.
ComplianceStoreConfig.Snapshot<TDoc>(SnapshotLifecycle) and the fixture's LoadDocumentAsync are already in place, so this is portable with no seam addition.
Marten's inline-aggregation set is unusually broad (base classes, subclasses, non-public setters, private constructors) and Polecat's is thin — a classic drift asymmetry worth closing in the strongest direction.
Scope
New SnapshotLifecycleCompliance suite:
Same aggregate, same events, registered Inline vs Async vs Live → identical resulting state (the load-back for Live goes through AggregateStreamAsync)
Part of #5118 (compliance wave growth), epic #5110.
The compliance library asserts async snapshots (
AsyncDaemonCompliance) and self-aggregating evolve (SelfAggregatingEvolveCompliance), but nothing yet pins the equivalence of the three lifecycles: the same aggregate registeredInline,AsyncorLivemust produce the same document state, and only the persistence timing should differ.ComplianceStoreConfig.Snapshot<TDoc>(SnapshotLifecycle)and the fixture'sLoadDocumentAsyncare already in place, so this is portable with no seam addition.What each store tests today
Projections/inline_aggregation_by_stream_with_multiples.csProjections/inline_projection_tests.csProjections/inline_aggregation_with_base_view_class.csProjections/snapshot_registration_tests.csProjections/inline_aggregation_with_non_public_setter.csEvents/inline_projection_side_effects_tests.csProjections/inline_aggregation_with_private_constructor.csProjections/inline_aggregation_with_subclass.csAggregation/when_doing_inline_per_stream_aggregations_with_Guid_stream_identity.csAggregation/setting_version_number_on_aggregate.csMarten's inline-aggregation set is unusually broad (base classes, subclasses, non-public setters, private constructors) and Polecat's is thin — a classic drift asymmetry worth closing in the strongest direction.
Scope
New
SnapshotLifecycleCompliancesuite:AggregateStreamAsync)SaveChangesAsync, asserted throughLoadDocumentAsync, not a re-fold (this is precisely the drift Epic: cross-store event sourcing compliance test library (test harness standardization Phase 3) #5110 found in Polecat's originals)setting_version_number_on_aggregate)Acceptance