Repository navigation
Release v22.95.0
Commands that append to an identifier they generated are now protected against writing into an event source that already has events.
Added
- When a command appends to an event source whose id was generated by a
[GeneratedValue]parameter in the same invocation, the append requires the whole event source to be empty. If it already has events, the command fails withConcurrencyViolationandReasonDetailGeneratedIdentifierCollision, andHandle()is not run again. This covers returned events (includingEventForEventSourceId,(id, event)tuples andEventsWithConcurrencyScopes) and aggregates. See Fresh identifiers. (#3129) [GeneratedValue(Freshness = GeneratedValueFreshness.Unguarded)]opts a generated value out of the guard. (#3129)