Fluid Framework 2.0 previewed with first beta, suffers from lack of community engagement

Fluid Framework 2.0 previewed with first beta, suffers from lack of community engagement

Microsoft has previewed Fluid Framework 2.0, a collaboration framework based on WebSockets, and introduced new integration with Microsoft 365 SharePoint Embedded.

This second version provides a new object type called a SharedTree, which Microsoft product managers Nick Simons and Kashif Qureshi say “provides an intuitive programming interface for working with data and supports a broad range of data types including objects, arrays, and maps.” 

The framework requires a server component and in addition to the existing Azure Fluid Relay Service, Microsoft now also supports SharePoint Embedded (formerly previewed as Syntex Repository Services), which integrates Fluid applications with Microsoft 365 tenancies and permissions.

What is Fluid Framework though? The problem it addresses is how to build collaborative applications, where multiple authors amend a document of some kind and all clients need to see the latest version. Synchronization is a tricky problem, and Fluid Framework is Microsoft’s next generation solution, apparently based on trying to improve on the experience it had building collaboration for Office 365 web applications like Word and Excel.

The Fluid Framework stack – note the dependency on Microsoft’s cloud

Fluid Framework from the developer point of view is a collection of data structures, called Dynamic Data Structures (DDS), which can be used by JavaScript or TypeScript in web applications. An object created using a DDS automatically distributes its state to all other instances of the application that have a live connection to the Fluid server, using WebSockets. The idea is that the developer can work with DDS objects as if they were local data, with the framework wrapping the synchronization. Under the covers all the data, and changes to the data, are defined as operations, and the Fluid service receives operations from clients and then broadcasts them – hence “Fluid Relay Service.”

 The code for Fluid Framework was made open source while in preview in September 2020, and version 1.0 was released in September 2021. The service was not really fully released though until general availability of the Azure Fluid Relay Service in August 2022.

Microsoft has made use of Fluid in two 365 applications, Loop and Whiteboard. Performance is good though Loop customers have been disappointed so far by the inability to share with external contributors, a problem first raised in March 2023 and still considered “very important for us — almost a show stopper” by some customers.

That experience of nearly-but-not-quite seems to apply more widely too. Fluid Framework is a clever solution to a real problem, but there are a few issues that may deter developers. One is that while the client code is open source, the server code is not; or at least, the open source server called Routerlicious is not production ready, according to the official FAQ, though since the FAQ also refers to “as we approach version 1.0” it may not be up to date. The service would likely get more community involvement if it were easy to self-host.

The company no doubt prefers to promote its own hosted Fluid services, Azure Fluid Relay and SharePoint Embedded, but these could be costly for popular applications. SharePoint Embedded is billed at around $0.20 per GB/month storage, $0.00050 per Graph API transaction, and $0.12 per GB egress. The egress charges in particular could soon stack up, as a busy collaborative application might involve many thousand operations and the service is inherently chatty.

Qureshi and Simons refer to the Fluid community but Microsoft may not be doing enough to support this. If a collaborative document is formed of thousands of operations, what is the “authoritative source of truth for the application”, asked a developer in March 2022. A fair question, supported by other developers comments like “persistence is really the missing part of the entire documentation around Fluid Framework,” but lacking any official reply from Microsoft in the ensuing 22 months.

General availability for Fluid Framework 2.0 is promised for “later this summer” according to the video accompanying the post announcing the beta.