Skip to content

Fluxzero 2.0.0-RC4

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 09:56
· 69 commits to main since this release
ff0e8fb

Fluxzero 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_SOURCED reconstructs state from the Model event stream.
  • EVENT_SOURCED_WITH_DOCUMENT reconstructs from events and maintains a searchable current document.
  • DOCUMENT makes the current document authoritative and reads it through the configured DocumentSerializer.
@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.

Full changelog from RC3