Fluxzero 2.0.0-RC4
Pre-releaseFluxzero 2.0 RC4
RC4 closes the public Model persistence design and hardens the concurrency, recovery, and historical-read paths discovered during final application qualification. It is the current SDK candidate to pair with Runtime 2.0.0-RC4.
One explicit persistence choice
The provisional eventSourced and searchable boolean matrix is replaced by one closed contract:
EVENT_SOURCEDreconstructs state from the Model event stream.EVENT_SOURCED_WITH_DOCUMENTreconstructs from events and maintains a searchable current document.DOCUMENTmakes the current document authoritative and reads it through the configuredDocumentSerializer.
@Model(persistence = ModelPersistence.EVENT_SOURCED_WITH_DOCUMENT)
public record Project(
@EntityId ProjectId projectId,
ProjectDetails details) {
}Event publication, internal Graph component documents, and optional whole-Graph materialization remain orthogonal. Invalid or non-reconstructable combinations now fail before commit.
Final hardening
- Nested Model replay no longer inherits an unrelated outer Graph handler constraint, while the selected Graph remains available to its handler.
- Direct document reads and ACCEPT rebases respect exact durable boundaries while materialization catches up.
- Cascade rebases include newly attached descendants and retain atomic deletion semantics.
- In-memory Model commits no longer have a lock inversion with concurrent event appends.
- Model cache bulk updates are serialized per key so stale work cannot overwrite a newer revision.
- Monitored in-memory document indexing replaces entries by message ID without quadratic collection scans.
- WebSocket close acknowledgement is independent from application notification latency.
Compatibility and qualification
The persistence API change only replaces provisional 2.0 prerelease declarations; it does not change persisted Model data or wire formats. Existing 1.x Aggregate and document flows remain supported. Human guides, Javadoc, and the Java and Kotlin agent manuals now describe the same final API.
Use this SDK with Runtime 2.0.0-RC4. Stable and 1.x channels are unchanged.