Penelitian ini memaparkan sebuah aplikasi editor kode kolaboratif local-first berbasis peer-to-peer yang diimplementasi dengan WebRTC dan CRDT. Selain itu, aplikasi ini menyertai shell bersama yang dapat dijalankan oleh salah satu pengguna dan digunakan oleh setiap pengguna lain dalam suatu kelompok jaringan. Terdapat beberapa variasi arsitektur backend pada aplikasi yang dibandingkan dalam penelitian ini. Dari segi algoritma dalam menjaga konsistensi dokumen, dua pendekatan berbeda yang diteliti ialah algoritma OT (operational transformation) dan metode yang memanfaatkan struktur data CRDT (conflict-free replicated data types). Dari segi arsitektur jaringan, penelitian ini mengevaluasi CRDT berbasis client-server, CRDT berbasis peer-to-peer, serta OT berbasis client-server. Keterbatasan OT yang diimplementasi pada penelitian ini membutuhkan suatu sumber kebenaran berupa server, sehingga OT berbasis peer-to-peer tidak dievaluasi. Penelitian ini menemukan bahwa variasi implementasi CRDT peer-to-peer yang diujikan memiliki performa lebih baik untuk sejumlah pengguna n≤8. Selain itu, signalling server pada variasi ini menggunakan resource yang minim, sehingga lebih optimal untuk kelompok jaringan yang lebih banyak. Sementara itu, variasi CRDT client-server dapat dipertimbangkan penggunaannya ketika terjadi masalah saat melakukan inisialiasi jaringan peer-to-peer atau jumlah pengguna dalam suatu kelompok jaringan jauh lebih banyak dari eksperimen yang dilakukan pada penelitian ini.
This research presents a peer-to-peer and local-first collaborative code editor application implemented with WebRTC and CRDT. In addition, the application includes a shared shell that can be run by one user and used by every other user in a network group. There are several variations of architecture in the applications compared in this study. In terms of algorithms for maintaining document consistency, two different approaches were evaluated, OT (operational transformation) algorithm and CRDT (conflict-free replicated data types) data structure. In terms of network architecture, this study assessed client-server based CRDT, peer-to-peer based CRDT, and client-server based OT. The limitation of OT implemented in this research is that it requires a single source of truth in the form of a server, so peer-to-peer-based OT was not evaluated. This study found that the peer-to-peer based CRDT variation tested performed better for a number of users n <= 8. Moreover, the signaling server in this variation uses minimal resources, making it more optimal for larger network groups. However, the client-server CRDT variation’s usage can be considered when there are problems initializing a peer-to-peer network or the number of users in a network group is much larger than the experiments conducted in this study.