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