Fluxzero 2.0.0-RC5
Pre-releaseFluxzero 2.0.0-RC5 is a focused stabilization and API-coherence release for the new Model platform. It makes Model storage intent explicit, adds direct relationship-ID search, and closes correctness gaps around document-only Models, recursive deletes, and cache invalidation.
Model persistence says what is stored
Persistence and public search are now separate choices:
@Model(
persistence = {
ModelPersistence.EVENT_SOURCED,
ModelPersistence.DOCUMENT
},
document = @DocumentProjection(searchable = false))
public record Task(
@EntityId TaskId taskId,
@Parent(pathInParent = "tasks") ProjectId projectId,
TaskDetails details) {
}persistence selects the durable representations and authoritative load path. DocumentProjection.searchable only controls whether the current document is exposed through an unrestricted typed search. A reference-only document remains available for direct loads, relationships, and Graph composition.
Search by known parent or ancestor identity
A known typed ID can now start directly from Fluxzero's durable relationship index. The related parent or ancestor does not need a public document:
List<Task> projectTasks = Fluxzero.search(Task.class)
.whereParent(projectId)
.fetch(100);
List<Task> organisationTasks = Fluxzero.search(Task.class)
.whereAncestor(organisationId)
.fetch(100);Content-based whereParent and whereAncestor searches remain available when the related identity is not known.
Correctness and runtime parity
RC5 also strengthens the less visible paths that matter in production:
- Document-authoritative Models can be created, repeatedly updated, deleted, and recreated without reconstructing nonexistent event history.
- Recursive owned-descendant deletes validate the complete closure before mutation in both
TestFixtureand the Runtime. - Deep cascade conflicts rebase from the actual missing descendant boundary.
- Hard deletes release cache-refresh waiters independently of asynchronous eviction notification timing.
- Self-tracking and automatic Model handlers reject unrelated payload types before deserialization.
- README navigation and the Model persistence guidance have been refreshed.
Compatibility
Use SDK 2.0.0-RC5 together with Runtime 2.0.0-RC5. This remains a release candidate intended for validation before the final 2.0 release.