For our SharePoint Master and long-term employee Oliver Zeiser, trying out new technologies and the continuous development of our modern workplace solution CoffeeNet are part of his daily business. Together with Oliver and his team, we want to make sure that our solutions also remain modern for our customers.
In this blog post, Oliver talks about what it means to be at the forefront of technology behind the scenes. And he does so using the most recent example of Microsoft's Fluid Framework for real-time collaboration. A first-hand report for anyone who wants to take a deeper look into Microsoft's technological developments.
Blog post by Oliver Zeiser, SharePoint Master at MondayCoffee
When I started in 2013 to leave the on-premises world step by step and to develop our modern cloud-based workplace solution CoffeeNet for SharePoint Online, I went into it with a fair amount of doubt myself. Today I know that it was the right decision. Focusing on the right technologies at an early stage pays off in the long run.
Eight years later, working with the latest technologies is by no means easier, but it has become my daily business. In this new, rapidly changing cloud age, nothing is worth more than being able to make real experiences with the latest technologies and to bring them into our products. A current example is the Microsoft Fluid Framework.
THE MICROSOFT FLUID FRAMEWORK - FROM VISION TO REALITY
On May 6, 2019, Microsoft introduced the Fluid Framework at the Build Conference as a new framework for real-time collaboration. Of course, at that moment, the Fluid Framework was not a finished product, but rather a vision.
Definition Fluid Framework: “First, experiences powered by the Fluid Framework will support multi-person co-authoring on web and document content at a speed and scale not yet achieved in the industry.”
For us, however, the vision quickly became reality: we have been dealing with the topic since May 2019 and made an early effort to be able to gather initial personal experiences with it.
Hence, back in October 2019, we traveled to Redmond to gather hands-on experience, build prototypes, and provide feedback on-site at Microsoft with the Fluid Framework developers and the SharePoint Framework team. During our stay at Microsoft, we quickly understood what the Fluid Framework is about and what differentiates it from classic real-time frameworks like SignalR and WebSockets.
FLUID FRAMEWORK VERSUS CLASSIC REALTIME FRAMEWORKS
SignalR and WebSockets are often used to run so-called last-write-wins data structures. For example, a message is sent over a WebSocket that updates a value in a map on the client. So, for example, in many simple WebSocket scenarios, this message is a notification such as, "You have mail."
Fluid is about managing state, not transmitting messages. While last-write-wins data structures are included in Fluid, some data structures require more complex state management. Strings and sequences are not last-write-wins.
How would a last-write-wins algorithm handle two users processing a string at the same time?
Initial state: "Hello world"
Alice adds "!" to the end
Bob adds "?" at the end
There might be some strange behavior that results in "Hello world?" or "Hello world!".
Fluid orders Bob's change and Alice's change through the Fluid service. The merge tree data structure then has a reproducible merge algorithm for applying these ordered changes. Ultimately, the string would be "Hello world?!".
Although simple examples are easy to implement, especially last-write wins, more complex examples are challenging. OT (Operational Transformation) & CRDTs (conflict-free replicated data type) are two existing ways to handle state replication. Much of the initial value proposition of Fluid is to manage complex state for developers.
DEVELOPMENT OF PROTOTYPES TOGETHER WITH MICROSOFT
On September 8, 2020, almost a year later, Microsoft released an initial open source version of the Fluid Framework. See the release here.
But what many didn't know at the time: that this was just the beginning. The real work was going on behind the scenes. Microsoft had continued to work on the issue of integrating the Fluid Framework directly into Microsoft 365 as a service.
As developers and operators of CoffeeNet 365 (a cloud service for Microsoft 365), we know how much effort is required to run such services.
For this reason, we decided to take the path together with Microsoft at an early stage and to build our apps on the Fluid Framework, which uses Microsoft's backend service directly as a service in M365.
Working closely with Microsoft, we developed the first apps and prototypes in a private preview program. And today, in May 2021, we finally get to write about it.
THE FLUID FRAMEWORK WILL SUSTAINABLY CHANGE WORK AS WE KNOW IT TODAY
It has been hard for us to hold back our enthusiasm the whole time, because the Fluid Framework will change work as we know it today. We at MondayCoffee have been involved from the beginning and have shown once again that we not only have a very good intuition for forward-looking technologies, but that we can offer a huge added value to our customers through our close cooperation with Microsoft and many of their developers from Redmond.
On the day Microsoft announces the next stage for the Fluid Framework, we have already mastered it and can support our customers with first apps and most importantly already with real experience and best practices.
As a developer and architect of CoffeeNet 365 and as a technology enthusiast in general, I really enjoy building the bridge between MondayCoffee, Microsoft and our customers and being able to work at the forefront of technology. Even if the price is sometimes having to hold back your enthusiasm until the topics are allowed to be made public. That's why I'm even more excited that our app was introduced at Microsoft Build Conference 2021.
You'll be hearing a lot more from us on this topic in the future. Unfortunately, we can't reveal everything now either. But you can stay curious. We at MondayCoffee are already taking the next step and the one after with Microsoft for our customers.