Fluid Framework 2.0 contains two major updates: SharedTree DDS and support for SharePoint Embedded.
We listened to your feedback and have made it even easier to use Fluid by introducing a new programming model based on the new SharedTree DDS. Now you can specify the data model schema for your app, and we'll represent it with a SharedTree. Like other DDSs, you can continue to use these data objects like local objects and we'll keep them in sync.
We have also added support for SharePoint Embedded, which is an M365 hosted service offering. You can access it by using the @fluidframework/odsp-client package.
New features
SharedTree DDS
Our new DDS offering that allows you to represent any hierarchichal data model for you app.
odsp-client
New service API that allows you to access SharePoint Embedded service.
Breaking Changes
sequence: Remove the findTile API
The findTile
API that was previously deprecated is now being removed. The new searchForMarker
function provides similar functionality, and can be called with the start position, the client ID, the desired marker label to find, and the search direction, where a value of true
indicates a forward search.
sequence: Unify the change and changeProperties methods
Instead of having two separate APIs to modify an interval's endpoints and properties, combine both into the same method, IntervalCollection.change. Change is called with a string id value as the first parameter, and an object containing the start value, the end value, and/or the properties, depending on the desired modifications to the interval. Start and end must both be either defined or undefined.
The old functionality and signatures were deprecated in the internal.7.4.0 minor release.
telemetry-utils: Remove deprecated config types from telemetry-utils
The types ConfigTypes
and IConfigProviderBase
were deprecated and are now removed from @fluidframework/telemetry-utils. They continue to exist in @fluidframework/core-interfaces. Please update your reference to use these types from @fluidframework/core-interfaces.
Deprecations
garbage collection: Deprecate addedGCOutboundReference
The addedGCOutboundReference
property on IDeltaConnection, IFluidDataStoreContext, and MockFluidDataStoreRuntime is now deprecated.
The responsibility of adding outbound references (for Garbage Collection tracking) is moving up to the ContainerRuntime. Previously, DDSes themselves were responsible to detect and report added outbound references (via a handle being stored), so these interfaces (and corresponding mock) needed to plumb that information up to the ContainerRuntime layer where GC sits. This is no longer necessary so they're being removed in an upcoming release.
Updates to Alpha APIs
shared-object-base: SharedObject processGCDataCore now takes IFluidSerializer rather than SummarySerializer
This change should be a no-op for consumers, and SummarySerializer
and IFluidSerializer
expose the same consumer facing APIs. This change just makes our APIs more consistent by only using interfaces, rather than a mix of interfaces and concrete implementations.
datastore-definitions: Remove unused IFluidDataStoreRegistry from IFluidDataStoreRuntime
IFluidDataStoreRuntime
optionally extended IFluidDataStoreRegistry
. This is never used, so is removed. As with all provider interfaces, consumers can continue to extend the interface if they have a use, and use FluidObject
to inspect for it existing.
id-compressor: Cluster allocation strategy updated
This change adjusts the cluster allocation strategy for ghost sessions to exactly fill the cluster instead of needlessly allocating a large cluster. It will also not make a cluster at all if IDs are not allocated. This change adjusts a computation performed at a consensus point, and thus breaks any sessions collaborating across version numbers. The version for the serialized format has been bumped to 2.0, and 1.0 documents will fail to load with the following error: IdCompressor version 1.0 is no longer supported.
Further updates
sequence: Remove the signature of IntervalCollection.add that takes a type parameter
The previously deprecated signature of IntervalCollection.add
that takes an IntervalType
as a parameter is now being removed. The new signature is called without the type parameter and takes the start
, end
, and properties
parameters as a single object.
Updated server dependencies
The following Fluid server dependencies have been updated to the latest version, 3.0.0.
See the full changelog.
- @fluidframework/gitresources
- @fluidframework/server-kafka-orderer
- @fluidframework/server-lambdas
- @fluidframework/server-lambdas-driver
- @fluidframework/server-local-server
- @fluidframework/server-memory-orderer
- @fluidframework/protocol-base
- @fluidframework/server-routerlicious
- @fluidframework/server-routerlicious-base
- @fluidframework/server-services
- @fluidframework/server-services-client
- @fluidframework/server-services-core
- @fluidframework/server-services-ordering-kafkanode
- @fluidframework/server-services-ordering-rdkafka
- @fluidframework/server-services-ordering-zookeeper
- @fluidframework/server-services-shared
- @fluidframework/server-services-telemetry
- @fluidframework/server-services-utils
- @fluidframework/server-test-utils
- tinylicious
Updated @fluidframework/protocol-definitions
The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0.
See the full changelog.