Basis Data Terdistribusi dengan Rust
Tulisan ini mendokumentasikan eksplorasi yang menggabungkan ketertarikan di bidang Basis Data dengan bahasa pemrograman Rust untuk implementasi sistem terdistribusi.
Secara gambaran besar, proses eksplorasinya akan menggunakan tahapan-tahapan berikut:
Mencari proyek edukasi yang terbuka dalam menjelaskan implementasi sistem basis data terdistribusi, terlebih jika pendekatannya sudah menggunakan bahasa pemrograman Rust.
Salah satu yang menarik adalah proyek TiKV basis data Key-Value yang dibangun dengan Rust, keluarga produk dari TiDB yang dibangun pakai Go, dulunya tim yang membuat TiKV ini, namanya PingCap, membuat edukasi tentang basis data di Talent-Plan Courses.
Lanjut ke pencarian berikutnya adalah proyek Surrealdb basis data document-graph yang juga dibangun dengan Rust. Tentu yang menariknya adalah adalah dukungan edukasi tentang basis data di SurrealDB University dan interactive book.
Di bagian berikutnya, agar tidak terlalu luas pilihannya, ada proyek toydb yang bertujuan edukasi basis data terdistribusi dengan Rust. Sepertinya pendekatan proyek edukasi ini yang akan dipilih, untuk membuat pembelajarannya lebih landai dalam memahami topik kompleks basis data terdistribusi dengan implementasi bahasa pemrograman Rust.
Dengan terpilihnya toydb sebagai sarana edukasi menjadikannya titik awal yang ideal. Kita akan mulai dari langkah awal untuk membedah toydb, dimulai dari blue print atau cetak biru untuk Database Terdistribusi. Membedah proyek toydb untuk memahami arsitektur dan pilihan desainnya, membangun model mental yang akan memandu bagian implementasi selanjutnya. Di bagian ini akan banyak membahas tentang teori, di antaranya, storage engine, konsensus Raft, transaksi dengan ACID, SQL Query Engine.
Agar tidak cuma berkutat di teori, tahapan berikutnya adalah praktik, dengan pembelajaran melalui proyek toydb, membangun Distributed Key-Value Store dengan Rust.
Setelah membahas Key-Value Database, dengan harapan ingin lebih luas pemahamannya, ingin berevolusi juga menjadi Database SQL Terdistribusi.
Tentunya di bagian akhir ada refleksi pembelajaran.
Hasil tulisan eksplorasinya akan dipotong-potong per pada sejumlah artikel selanjutnya, nantinya akan dilanjutkan dengan tag db.
Referensi
tikv/tikv: Distributed transactional key-value database, originally created to complement TiDB - GitHub, accessed September 30, 2025, https://github.com/tikv/tikv
Architecture | Introduction - SurrealDB, accessed September 30, 2025, https://surrealdb.com/docs/surrealdb/introduction/architecture
erikgrinaker/toydb: Distributed SQL database in Rust, written as an educational project - GitHub, accessed September 30, 2025, https://github.com/erikgrinaker/toydb
neondatabase/neon: Neon: Serverless Postgres. We separated storage and compute to offer autoscaling, code-like database branching, and scale to zero - GitHub, accessed September 30, 2025, https://github.com/neondatabase/neon
chroma-core/chroma: Open-source search and retrieval database for AI applications. - GitHub, accessed September 30, 2025, https://github.com/chroma-core/chroma
ClickHouse/ClickHouse: ClickHouse® is a real-time analytics database management system - GitHub, accessed September 30, 2025, https://github.com/ClickHouse/ClickHouse