Repository navigation
2.0.0-rc.20 – Sep 23, 2026
Pre-releaseHighlights
- Add
Graph.compareAndSet(replacement)for a single revision-checked replacement or deletion. - Add
Graph.updateAndGetandGraph.getAndUpdatewith a Graph transformation and boundedmaxRetries(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.