Document? Library? A new kind of component? Microsoft had a hard time explaining what its Fluid Framework is
Build An intriguing technology preview at Microsoft's just-finished Build event is Fluid Framework – but the company has not done a great job of communicating what exactly it is.
Microsoft opened up on the Fluid Framework a year ago at Build 2019. It is presented as a feature of Office 365, by which document components such as formatted text, tables, charts, and lists are enabled for real-time collaboration.
It is web technology so not yet available in the desktop Office applications – this is planned in future – but the idea is that if one works in the browser one can have these components in emails or other documents and see them update instantly as others contribute. This has been in limited preview for a while, but at Build Microsoft said a public preview is coming soon, and the framework will be published as open source within a month. This will allow third parties to create new components, or make use of the technology within non-Office applications.
How is this different from the multi-user editing capabilities already available in SharePoint online? "Fluid components by being embeddable within Teams chats and email will get you closer to a single source of truth," Mike Ammerlaan, Microsoft 365 Ecosystem director, told The Reg. "By being able to have those components directly inside of chat, you'll make it easier for users to see the latest version. It's more friction-free compared to a hyperlink."
The system records who made what change, and lets you see the component history and revert to an earlier version if needed.
Fluid is also, in the current implementation, a new document type that you can create in SharePoint or OneDrive online, which are containers for Fluid components. This piece is being typed into Fluid, and while it lacks the bazillion features of Word, it is a clean and responsive editor with basic right-click formatting, based internally on Markdown. Click the Plus icon and one can insert elements including tables, images, task lists, and @mentions. It is very limited.
The idea, though, is not so much a new document type, but rather to escape from the idea of editing a specific type of document. In the old model, "typically you task-switch between a lot of different applications," principal lead program manager Peter Allenspach told Build. "With the Fluid Framework you can have an integrated experience, we bring the tools to where you already work. For example, you can work in Teams or in Outlook end-to-end."
While this sounds interesting, there is frustration at the length of time it is taking Microsoft to progress from proof-of-concept demos to anything useful. One comment complained, for example: "Where is the real-life usage examples? Is it still so far in development that you don't have any? Like when will I be able to say copy a graph from a spreadsheet from OneDrive and paste it into email and then see it automatically refreshes live in an email reading pane when someone updates the numbers? Or even update the numbers directly from this graph in an email? One year, two years from now?"
Fluid Framework under the hood
The best information on Fluid is in this Build session where Allenspach and senior program manager Tyler Butler explained the rationale and how it works.
The heart of Fluid (on the client) is Distributed Data Structures, which have lots of built-in smarts
Fluid has two key concepts, said Butler. The first is distributed data structures (DDS), "the primary building block that you use as a developer". These include strings, arrays, lists of objects, and more. A Fluid component is a collection of DDSes combined with business logic and possibly other Fluid components. The framework lets developers store data in a DDS and have this state automatically stored on the server with other clients notified of the change. There are also methods for exploring component history, and a complete record of all changes is kept on the server.
How does the framework deal with conflict resolution? "It does require some thought" from the developer, said Simons, "but there's work in the design to make conflict resolution easy to handle... many of the distributed data structures have a certain amount of conflict resolution built into them, like the shared string, [which] do the work to make sure you get a rational output when multiple operations come in at the same time."
How well does it scale? "The amount of work the server has to do is extremely lightweight," said Simons."It's just bringing in ops, stamping them, and broadcasting them. You can have a server do thousands of requests a second and it wouldn't be struggling at all. We find the network is the biggest factor."
It is obvious, though, that it works much, much better for simultaneous co-authoring than the existing SharePoint-based capability, which may eventually help change the perception that Google's G Suite is superior for collaboration, and is evidence that Microsoft is willing to offer web-based features that leave Windows users behind. ®