Collaborative Draft Synchronization Using WebSocket and OData
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Collaborative applications face challenges in enabling multiple users to edit the same document simultaneously without conflicts or overwrites, particularly in scenarios where exclusive drafts are converted to collaborative drafts.
Innovation Solution
A collaborative framework utilizing a first protocol for real-time notification of modifications and a second protocol for content retrieval, ensuring access rights are applied, with a backend providing a websocket for client synchronization and OData for data exchange, allowing multiple users to edit the same object in a synchronized manner.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a single protocol is used for both modification notification and content retrieval, then the system is simpler, but real-time synchronization and access rights enforcement become unreliable
Solution Approach 1:
The system segments the communication protocol into two distinct protocols: a first protocol (e.g., WebSocket) for real-time modification notifications and a second protocol (e.g., OData) for content retrieval and access rights enforcement. This segmentation allows each protocol to be optimized for its specific function, ensuring reliable real-time synchronization while maintaining systematic content management.
Solution Approach 2:
The system dynamically switches between protocols based on the operation type. For real-time collaboration notifications, the first protocol is used; for content retrieval and access control, the second protocol is used. This dynamic protocol selection ensures both real-time responsiveness and systematic data management.
2Reliability
If multiple protocols are used for data exchange, then real-time synchronization and access rights are improved, but the system complexity increases
Solution Approach 1:
The server acts as an intermediary that manages multiple protocols. It receives modification notifications via the first protocol, enforces access rights using the second protocol, and coordinates between them. This intermediary approach allows the system to leverage the strengths of multiple protocols while centralizing the complexity management on the server side.
Solution Approach 2:
The system architecture is segmented into distinct communication layers: real-time notification layer using the first protocol and content management layer using the second protocol. Each layer handles specific functions, reducing the complexity burden on any single component while maintaining overall system reliability.
3Productivity
If real-time collaboration is enabled, then user productivity is improved, but backend load and synchronization conflicts increase
Solution Approach 1:
The system extracts real-time notification handling from the content retrieval process. Modification notifications are processed separately via the first protocol, while content retrieval and updates are handled via the second protocol. This extraction reduces backend processing load by separating critical real-time responses from heavier content management operations.
Solution Approach 2:
The system uses partial actions by sending only modification notifications through the first protocol without immediately retrieving full content. Full content retrieval occurs selectively through the second protocol when necessary, reducing unnecessary backend load while maintaining collaborative editing efficiency.
Data Source
AI summary
Various embodiments are disclosed for implementing a collaborative draft which allows several users to edit the same object at the same time, in a collaborative manner. A first computing device may receive, via a first protocol, an indication of a modification made to a first database object on a second computing device. Next, the indication of the modification made to the first database object is displayed in a user interface on the first computing device of a first user. Content associated with the modification is retrieved from the second computing device by the first computing device via a second protocol responsive to determining that access rights of the first user permit the content to be displayed to the first user, where the second protocol is different from the first protocol. Then, the content associated with the modification to the first database object is displayed by the first computing device.


