Repository navigation
2.0.0-rc.19 – Sep 22, 2026
Pre-releaseFluxzero 2.0.0-rc.19
This candidate hardens Model concurrency, current Graph reads and polymorphic IDs.
Model concurrency and command results
- A rejected command no longer closes its enclosing message batch or fails unrelated in-flight Model results.
- Overlapping asynchronous Model commits coordinate within the tracking batch while independent scopes remain parallel.
- Commands that read provisional state reevaluate after their predecessors settle, including after a predecessor is rejected. Each command receives its own validation or commit outcome.
- Ordinary handlers still wait for successful persistence before publishing results derived from provisional state. Genuine batch aborts remain terminal.
Graph reads and aliases
- Missing aliased companion Models remain absent instead of resolving to an unrelated parent with the same functional ID.
- Fresh current DOCUMENT-backed Graph reads resolve identity and value coherently during concurrent creation, replacement and deletion, with bounded retries.
- Historical, already pinned and transactional Graphs retain their read boundary. An explicitly current DOCUMENT root captures its value when the view is created.
- Simple DOCUMENT mutations acquire an additional transactional read boundary lazily when needed, avoiding an unconditional extra lookup for ordinary writes.
Polymorphic IDs
Ambiguous ID properties such as Id<?> now retain their concrete identity through serialization. Model IDs use
{"name":"logical-model-name","id":"functional-id"}; other ID types use @class and id.
Parent allowlists and declared type constraints remain enforced. Concrete ID properties keep their scalar representation,
and explicit Jackson contracts remain supported.
Custom ID subtype deserializers retain their property context; OpenAPI describes polymorphic ID arrays and containers
with the same wire shape as individual IDs.
Upgrade readers before writers start emitting the new polymorphic representation. Historical scalar values on an
ambiguous polymorphic property cannot be inferred safely; provide an application upcaster where needed.
The candidate includes expanded concurrency, serialization, Graph and transport regression coverage, with matching
Java/Kotlin documentation. This is a prerelease, not the final 2.0 release.