Skip to content

Retries#14

Merged
DirtyNative merged 2 commits intodevelopfrom
feature/retries
Feb 13, 2026
Merged

Retries#14
DirtyNative merged 2 commits intodevelopfrom
feature/retries

Conversation

@DirtyNative
Copy link
Member

Concurrency retry on saveChangesAsync: ContinuumSession.saveChangesAsync now accepts an optional maxRetries parameter (default 0, fully backward-compatible). When a ConcurrencyException is detected and retries remain, the session automatically reloads conflicting streams from the store, reconstructs fresh aggregates, re-applies pending events on top of the latest state, and retries the save. This prevents silent event loss when multiple workflows modify the same aggregate concurrently.

**Concurrency retry on `saveChangesAsync`**: `ContinuumSession.saveChangesAsync` now accepts an optional `maxRetries` parameter (default `0`, fully backward-compatible). When a `ConcurrencyException` is detected and retries remain, the session automatically reloads conflicting streams from the store, reconstructs fresh aggregates, re-applies pending events on top of the latest state, and retries the save. This prevents silent event loss when multiple workflows modify the same aggregate concurrently.
@DirtyNative DirtyNative merged commit ef053d8 into develop Feb 13, 2026
2 checks passed
@DirtyNative DirtyNative deleted the feature/retries branch February 13, 2026 04:26
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.

1 participant