Skip to content

2.0.0-rc.20 – Sep 23, 2026

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Sep 11:38
· 296 commits to main since this release
046ca4d

Highlights

  • Add Graph.compareAndSet(replacement) for a single revision-checked replacement or deletion.
  • Add Graph.updateAndGet and Graph.getAndUpdate with a Graph transformation and bounded maxRetries (default 0). Each attempt reads fresh committed state and validates consumed Model values and relationships. Results are returned only after durable commit.
  • Report unavailable pinned DOCUMENT state during mutation preparation as the public ModelCommitConflictException, without leaking an internal Graph-boundary exception or silently reexecuting the stale mutation.
  • Add Java/Kotlin examples for atomic updates, consume-once and external-effect recovery, with deterministic concurrency coverage.

API boundaries

Atomic Graph helpers operate on one existing independent Model outside another Model mutation. They directly replace state; domain payload handlers and their assertions are not automatically invoked. Validate required invariants inside the transformation, return immutable values, and keep external effects outside it.

compareAndSet retains the receiver's expected revision and never retries. Function variants retry only definitively rejected storage commits, within the explicit budget. Application failures, unavailable pinned document history and uncertain transport outcomes are not automatically repeated. An absent Model is never implicitly created.

This is a release candidate, not a GA release. The broader final capacity and downstream qualification remains separate.

All changes since rc.19