Release 5th May 2025
Change Control note --version 2.2.2
Overview
This release is concerned with asynchronous execution, particularly in a Blazor web-assembly environment where all IO must be async to avoid blocking the UI thread. All Async functions now use underlying async functions rather that dispatching Tasks
HiperSpace
BatchBindAsync
and GetAsync
now call the driver async functions
Horizons
Horizon filters provide a mechanism to fine-grained access control, and context dependent filterning of content. The most common filter is to provide logical delete
to remove deleted elements from from read view, but present for update views.
Horizon now supports async filters for complex horizons that depend on other elements (that may need to be fetched over the network).
KeyRef
KeyRef<>
has the additional method ValueAsync()
that will fetch a value asyncronously if needed (the value is cached for further reference)
RefSet
RefSet<>
has an additional method AsAsyncEnumerable(CancellationToken cancellationToken)
that can be used to access elements asyncronously
RefSingle
RefSingle<>
is a special case of KeyRef for aspects (optional one-of) that is bound to the woining element so that it cane be used like a property. ValueAsync()
has been added for async access.
SetSpace
SetSpace<>
has additional functions for Async (filter, insert, update, deletem, get) operations without blocking and AsAsyncEnumerable(CancellationToken cancellationToken)
for asyncronous access to the full set
Hilang
The language compiler for Hiperspace domain spaces has been updated to generate code that uses async interfaces
Additional functions are provided for async access to the properties that might require network IO. e.g.
entity Customer [Accounts : Account];
segment Account (...) {...};
will generate a storage element CustomerAccounts
with a property owner : Customer
to access the owner of the segment element. CustomerAccounts
now has an ownerAsync()
member that retrieves the custoemr asyncronously
This release extends the Hipperspace
model to better support streaming aggregation of Cube and viewing of aggregates part of graph view. It also updated SessionSpace
to use stream replication rather than Zip file compression.