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
idempotency: idempotency moves to the new CSharpEssentials.Idempotency core; see the migration guide.
IIdempotencyStore, IdempotencyReservation, IdempotencyReservationStatus, InMemoryIdempotencyStore and DistributedCacheIdempotencyStore are removed from CSharpEssentials.AspNetCore; use IIdempotencyRecordStore, InMemoryIdempotencyRecordStore and DistributedCacheIdempotencyRecordStore.
IdempotencyOptions.KeyScope and DefaultKeyScope are removed; use ScopeResolver with IdempotencyScopes. Scopes are built only through the IdempotencyScope factories, and AllowUnscopedKeys is replaced by UnscopedKeyBehavior.
IdempotencyOptions.ShouldStore is a Func<IdempotencyOutcome, bool> instead of a Func<int, bool>; IdempotencyStorePolicies.SuccessOnly restores the 6.x rule.
IdempotencyOptions.RetryAfter is a non-nullable TimeSpan; the 409 always carries Retry-After.
A 5xx after the handler started is stored for ServerErrorRetention; 503, 504, exceptions and aborts after the handler started keep the key in flight until InFlightTimeout instead of releasing it.
A key must be printable ASCII other than space, " and \; other keys get 400 Idempotency.KeyInvalid.
IdempotencyOptions is resolved as a transient CurrentValue, and records use the idem:v3: storage key format, so 6.x entries are not read.
Added
idempotency: production-grade idempotency across http, mediator, messaging and ef core (42287de)
Fixed
idempotency: store observe results in the business transaction (#158) (bdcbdd1)