Summary
Strengthen the governance request store contract so persistence providers can protect request updates with optimistic concurrency instead of blind upsert semantics.
Goal
Replace the current unrestricted Store(...) behavior with a contract that can reject stale writes and preserve governance lifecycle correctness.
Scope
What should be implemented?
Acceptance Criteria
Notes
Implemented through:
IMutationRequestStore.Create(...)
IMutationRequestStore.TryStore(..., expectedRevision)
MutationRequest.Revision
MutationRequestAlreadyExistsException
MutationRequestConcurrencyException
- updated
InMemoryMutationRequestStore
- regression coverage in
MutationRequestStoreContractTests
The old blind overwrite characterization was replaced by guarded store tests that assert duplicate creates and stale writes are rejected.
Summary
Strengthen the governance request store contract so persistence providers can protect request updates with optimistic concurrency instead of blind upsert semantics.
Goal
Replace the current unrestricted
Store(...)behavior with a contract that can reject stale writes and preserve governance lifecycle correctness.Scope
What should be implemented?
IMutationRequestStoreso update semantics are explicit rather than blind overwriteCreate,Update,TryUpdate,Save(expectedRevision), orTryTransitionAcceptance Criteria
ModularityKit.Mutator.GovernanceNotes
Implemented through:
IMutationRequestStore.Create(...)IMutationRequestStore.TryStore(..., expectedRevision)MutationRequest.RevisionMutationRequestAlreadyExistsExceptionMutationRequestConcurrencyExceptionInMemoryMutationRequestStoreMutationRequestStoreContractTestsThe old blind overwrite characterization was replaced by guarded store tests that assert duplicate creates and stale writes are rejected.