# microsoft/fluidframework

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/microsoft-fluidframework).**

4,930 stars · 578 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/microsoft/FluidFramework
- Homepage: https://fluidframework.com
- awesome-repositories: https://awesome-repositories.com/repository/microsoft-fluidframework.md

## Topics

`collaboration` `crdt` `datastructure` `distributed` `fluid` `fluid-framework` `microsoft` `realtime`

## Description

FluidFramework is a real-time collaboration framework and distributed state synchronization engine. It provides a collaborative data model library and a cloud-synced document system designed to replicate data structures across connected clients using ordered operations to ensure eventual consistency.

The framework utilizes a client-server relay architecture to route and persist operations without requiring custom server-side business logic. It manages the lifecycle of collaborative sessions through shared data containers and implements conflict resolution strategies, such as last-writer-wins, alongside optimistic update mechanisms to maintain a responsive user experience.

Capability areas cover the synchronization of hierarchical data, key-value pairs, and real-time text editing. The system includes mechanisms for exclusive action coordination, real-time state subscriptions for user interface updates, and integrated cloud document management for storing application data on enterprise platforms.

The project includes a local service simulation for prototyping collaborative features without requiring a cloud deployment.

## Tags

### Software Engineering & Architecture

- [Collaborative Data Structure Synchronization](https://awesome-repositories.com/f/software-engineering-architecture/sync-conflict-resolution/collaborative-data-structure-synchronization.md) — Synchronizes complex shared data structures like arrays and maps across distributed clients using conflict-resolution logic. ([source](https://fluidframework.com/docs/start/examples))
- [Shared Object Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/distributed-object-handles/distributed-object-identifiers/shared-object-abstractions.md) — Provides an abstraction layer over distributed data structures so developers interact with them like local JavaScript objects.
- [Last-Write-Wins Semantics](https://awesome-repositories.com/f/software-engineering-architecture/last-write-wins-semantics.md) — Resolves concurrent updates to key-value pairs by prioritizing the operation with the most recent timestamp or sequence.
- [Collaborative](https://awesome-repositories.com/f/software-engineering-architecture/session-initializers/collaborative.md) — Provides programmatic interfaces for initializing shared data containers with defined schemas. ([source](https://fluidframework.com/docs/start/tutorial))
- [Shared Collaborative Data Types](https://awesome-repositories.com/f/software-engineering-architecture/shared-collaborative-data-types.md) — Provides a library of shared collaborative data types, such as maps and arrays, for automatic convergence.
- [Collaborative Session Containers](https://awesome-repositories.com/f/software-engineering-architecture/shared-collaborative-data-types/collaborative-session-containers.md) — Groups isolated collaborative sessions into logical units that manage the lifecycle and schema of shared objects.
- [Replicated State Machines](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic/replicated-state-machines.md) — Replicates data across connected clients by broadcasting ordered operations to ensure all participants converge on the same state. ([source](https://fluidframework.com/docs/concepts/architecture))
- [Exclusive Action Coordination](https://awesome-repositories.com/f/software-engineering-architecture/distributed-service-coordination/exclusive-action-coordination.md) — Ensures single-user task execution or value changes by requiring acknowledgment from all connected clients.
- [Distributed Object Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/shared-state-management/scoped-stateful-object-sharing/distributed-object-interfaces.md) — Organizes distributed data structures into shared objects to provide a consistent interface for developers. ([source](https://fluidframework.com/docs/glossary))

### Business & Productivity Software

- [Collaborative Document Infrastructures](https://awesome-repositories.com/f/business-productivity-software/cloud-synced-managers/collaborative-document-infrastructures.md) — Provides infrastructure for managing the lifecycle and persistence of collaborative documents using relay services.
- [Cloud Storage Integrations](https://awesome-repositories.com/f/business-productivity-software/cloud-storage-integrations.md) — Integrates with enterprise cloud storage platforms to manage and synchronize shared documents and session data.
- [Action Coordination](https://awesome-repositories.com/f/business-productivity-software/team-collaboration-events/collaboration-communication-tools/collaboration-tools/real-time-collaboration/action-coordination.md) — Ensures single-user task execution or value changes by requiring acknowledgment from all connected clients for exclusive actions. ([source](https://fluidframework.com/docs/data-structures/overview))

### Data & Databases

- [Cloud Data Synchronization](https://awesome-repositories.com/f/data-databases/cloud-data-synchronization.md) — Connects clients to managed cloud services to enable real-time collaboration on shared data models with scaling and security. ([source](https://fluidframework.com/))
- [Distributed Data Synchronization Systems](https://awesome-repositories.com/f/data-databases/distributed-data-synchronization-systems.md) — Uses distributed structures that automatically reflect modifications across all connected collaborators in real time. ([source](https://fluidframework.com/docs/glossary))
- [Distributed Shared Data Management](https://awesome-repositories.com/f/data-databases/distributed-shared-data-management.md) — Manages and persists complex hierarchical data structures and key-value pairs across distributed collaborators.
- [Distributed State Synchronization](https://awesome-repositories.com/f/data-databases/distributed-state-synchronization.md) — Distributes and synchronizes application state across multiple clients using consistent distributed models. ([source](https://fluidframework.com/docs/))
- [Synchronized Key-Value Maps](https://awesome-repositories.com/f/data-databases/key-value-pair-managers/synchronized-key-value-maps.md) — Synchronizes basic map data structures across clients using a last-writer-wins strategy to ensure state consistency. ([source](https://fluidframework.com/docs/data-structures/overview))
- [Session Encapsulations](https://awesome-repositories.com/f/data-databases/session-state-management/collaborative-session-coordination/session-encapsulations.md) — Implements isolated data containers to manage the lifecycle and scope of collaborative sessions. ([source](https://fluidframework.com/docs/build/overview))
- [Server-Side Editor State Persistence](https://awesome-repositories.com/f/data-databases/state-persistence/browser-storage-persistence/vuex-state-persistence/server-side-editor-state-persistence.md) — Stores shared application state on general-purpose servers without requiring custom server-side logic. ([source](https://fluidframework.com/docs/concepts/architecture))
- [Real-time Data Subscriptions](https://awesome-repositories.com/f/data-databases/real-time-data-subscriptions.md) — Provides a subscription mechanism for change events on shared objects to automatically update user interfaces during remote modifications. ([source](https://fluidframework.com/docs/start/tutorial))

### Development Tools & Productivity

- [Collaborative Application SDKs](https://awesome-repositories.com/f/development-tools-productivity/client-sdk-feature-access/collaborative-application-sdks.md) — Provides SDKs for building multiplayer applications with real-time state synchronization and shared interfaces.
- [Cloud Service Simulators](https://awesome-repositories.com/f/development-tools-productivity/cloud-service-simulators.md) — Provides an in-memory local service to simulate cloud backend behavior for collaborative feature prototyping. ([source](https://fluidframework.com/docs/testing/tinylicious))

### DevOps & Infrastructure

- [Cloud Service Integrations](https://awesome-repositories.com/f/devops-infrastructure/cloud-service-integrations.md) — Facilitates the transmission of operations between distributed clients via integration with cloud-hosted or local relay services. ([source](https://fluidframework.com/docs/build/overview))
- [Self-Hosted Collaboration Servers](https://awesome-repositories.com/f/devops-infrastructure/self-hosted-collaboration-servers.md) — Supports the deployment of server-side runtimes to synchronize shared state via cloud or self-managed services. ([source](https://fluidframework.com/docs/deployment/service-options))

### Networking & Communication

- [Centralized Relay Architectures](https://awesome-repositories.com/f/networking-communication/centralized-relay-architectures.md) — Uses a central backend service to route and persist operations without requiring custom server-side business logic.
- [Collaboration Session Connectivity](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-paradigms/group-membership-management/room-management/collaboration-session-connectivity.md) — Enables clients to establish connections to existing collaborative sessions using unique identifiers. ([source](https://fluidframework.com/docs/start/tutorial))
- [Collaborative Service Connections](https://awesome-repositories.com/f/networking-communication/distributed-service-connectivity/hub-service-connection-management/collaborative-service-connections.md) — Enables synchronization of state across distributed users by establishing connections to backend relay services. ([source](https://fluidframework.com/docs/api/))
- [Operation-Based State Reconciliation](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/peer-to-peer-networking/operation-based-state-reconciliation.md) — Broadcasts ordered data operations between clients and a relay service to ensure all participants converge on the same state.

### User Interface & Experience

- [Real-Time Collaborative Editing](https://awesome-repositories.com/f/user-interface-experience/real-time-collaborative-editing.md) — Enables multiple users to edit text strings simultaneously using optimistic updates to ensure real-time synchronization. ([source](https://fluidframework.com/docs/data-structures/overview))

### Web Development

- [Real-Time Collaboration Tools](https://awesome-repositories.com/f/web-development/real-time-collaboration-tools.md) — Provides a comprehensive framework for building distributed web applications with real-time state synchronization.
- [Optimistic Updates](https://awesome-repositories.com/f/web-development/state-management/optimistic-updates.md) — Applies local changes to the state immediately and reconciles them later when the relay service confirms the operation order.
