HANDLING NON-COMMUTATIVE OPERATION ON GRAPH EDITING COLLABORATIVE APPLICATION IN OFFLINE CASES WITH CONFLICT-FREE REPLICATED DATA TYPE YJS

Collaborative applications like Google Docs, Figma, etc are commonly used for daily use, especially after the new work from anywhere (WFA) culture. This new culture, make many collaborative applications are used to fulfill the needs where some workers work from different places. This application...

Full description

Saved in:
Bibliographic Details
Main Author: Kevin C Sembiring, Rehagana
Format: Final Project
Language:Indonesia
Online Access:https://digilib.itb.ac.id/gdl/view/78319
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Institut Teknologi Bandung
Language: Indonesia
Description
Summary:Collaborative applications like Google Docs, Figma, etc are commonly used for daily use, especially after the new work from anywhere (WFA) culture. This new culture, make many collaborative applications are used to fulfill the needs where some workers work from different places. This application mainly has a server which becomes a source of truth and the applications can only be used by the user that is connected to that corresponding server. However this will become such a problem when a bunch of users send some changes that will result as a conflict when connected to the server. There is an alternative that is can be possibly used to resolve this matter which is a technology called “conflict-free replicated data types (CRDT)”. Graph Editing Collaborative Application becomes an alternative to the test case that is used, because this application can represent well how conflict resolution works and many people use this kind of application such as figma, google jamboard, etc. This final project uses Yjs as a library for the implementation of CRDT. This library is used because of its good performance on a benchmark that has been done on some CRDT common use. Also this library gives better performance than some other libraries. To test the implementation of CRDT, this project will develop a graph editing collaborative application that will have some feature to resolve the main problem of this final project which is non-commutative operation. Based on the test, CRDT implementation with Yjs can already handle some features that are needed with some rules that Yjs describe itself. Every users will receive the same result after synchronization on the server but didn’t get the best result yet for some non-commutative operation cases.