PEER-TO-PEER BASED (P2P-BASED) COLLABORATIVE GRAPH EDITOR APPLICATION DEVELOPMENT BY USING YJS AND AUTOMERGE AS CONFLICT-FREE REPLICATED DATATYPE

Collaborative applications such as Google Docs and Google Drive are already very commonly used in everyday life both in education and in the industrial domain. Generally, these applications have full control over their user’s data because their users voluntarily store their data on the servers...

Full description

Saved in:
Bibliographic Details
Main Author: Shaffan Diva, Abda
Format: Final Project
Language:Indonesia
Online Access:https://digilib.itb.ac.id/gdl/view/55958
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Institut Teknologi Bandung
Language: Indonesia
Description
Summary:Collaborative applications such as Google Docs and Google Drive are already very commonly used in everyday life both in education and in the industrial domain. Generally, these applications have full control over their user’s data because their users voluntarily store their data on the servers controlled by those companies, and they may at any time misuse it secretly for their benefit. One of the root cause that enables this phenomenon is the common practice of using a centralized server for conflict resolution mechanism in the world of the collaborative software industry. One alternative that can be considered for implementing a decentralized collaborative application is to use peer-to-peer (P2P) technology for data propagation, and Conflict-free Replicated Datatype or CRDT to handle conflict resolution. CRDT allows conflict resolution on concurrently modified data to be performed on an app with a decentralized architecture. The usage of CRDT in a decentralized architecture is still not common in the industry, hence the implementation of CRDT needs to be further tested, and one type of collaborative application that is widely used and can be chosen as a test case is a graph editor application. The CRDT implementations that will be tested on this thesis are Automerge and Yjs libraries. The evaluation will be conducted by developing a simple graph editor application that has basic features that are generally always present in graph editor applications, and by using P2P as the application network architecture. Users can choose which CRDT implementation to use when they launch the app. Based on the evaluation result, both Yjs and Automerge have been able to handle all the necessary features, but in terms of performance Yjs is significantly superior to Automerge in terms of execution time, heap memory used, and the size of CRDT documents, and is better suited for the development of decentralized collaborative graph editor applications.