It’s no secret that collaboration is key to enhancing business operations and increasing overall productivity. Tools such as Microsoft Teams provide a great way to collaborate using chat, audio, and video. Word, Excel, and PowerPoint online make it easy to collaborate on various documents with colleagues and customers around the world.
While these tools are great, you may be wondering how to add collaboration functionality into your custom apps…
We generally think in terms of selecting, inserting, and updating data in a database; sending or receiving data to or from a RESTful service; or integrating real-time communication to connected clients using web sockets. While many applications may not require collaborative functionality, there are others that can benefit from a collaboration-first design approach.
Web sockets provide a proven way to add real-time communication to apps, but they aren’t designed to handle many of the unique challenges associated with real-time collaboration. For example, as multiple people are typing into a data grid cell or editing text in a brainstorming app, they can easily overwrite someone else’s work if data isn’t synchronized properly across clients. Effective real-time collaboration is built to intelligently handle these types of data collisions, synchronize data across clients in a collaboration session, and automatically store collaboration data.
While you can implement this type of functionality on your own with enough time and resources, a more productive solution is to leverage libraries and cloud services designed specifically for real-time collaborative scenarios. To better understand the possibilities and begin learning about services provided in the Microsoft Cloud, let’s walk through a brief scenario.
Scenario
Over the last year, most teams at Michelle’s company have shifted to remote work. Management has asked Michelle to build a custom line of business application that enables these remote team members to collaborate in real-time so they can work together to collect and review ideas. The application will support real-time user collaboration as well as user presence changes. Users need to be able to work together in the app to collect ideas; see when new ideas are added, modified, or deleted in real-time; and avoid data conflicts during the collaboration session.
To handle these requirements, Michelle will use the Fluid Framework and Azure Fluid Relay service for real-time data collaboration. Real-time user presence changes will be handled by using Microsoft Graph change notifications, Power Automate Flow, and Azure services.
Fluid Framework is a good choice for real-time collaboration since it relies on