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...
Saved in:
Main Author: | |
---|---|
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 |
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. |
---|