Computer Science

Membangun Database Key-Value Terdistribusi dengan Go, Raft, WAL, dan Snapshot

Bangun database key-value terdistribusi dengan Go, Raft consensus, WAL, replication, recovery, dan snapshot yang tahan restart.

Diperbarui 27 Agu 2026id7 bagian · 35 pelajaran4 jam 30 menit
Belum ada ulasan
Level Advanced
Kategori Computer Science
Perkiraan Durasi 4 jam 30 menit

Skill yang dibangun

Apa yang akan Anda pelajari

Merancang dan mengimplementasikan database key-value dengan operasi GET, SET, dan DELETE menggunakan Go.

Memahami state machine replication, role leader-follower, leader election, term, log index, dan commit index pada Raft consensus.

Membangun komunikasi antar-node melalui jaringan serta menangani timeout, retry, perubahan role, dan kondisi node yang gagal.

Mengimplementasikan Write-Ahead Log (WAL) untuk durability, recovery setelah restart, validasi log, dan pemulihan state secara aman.

Membuat snapshot untuk memangkas ukuran log, mempercepat recovery, serta memahami trade-off antara performa, konsistensi, dan durability.

Menulis kode Go yang aman terhadap concurrency menggunakan goroutine, channel, mutex, dan pengaturan akses state bersama.

Menguji cluster dengan guided practice dan independent practice, termasuk simulasi node mati, network delay, restart, serta data yang tidak konsisten.

Menganalisis bug distributed system dengan membaca log, memeriksa state transition, dan membedakan masalah aplikasi, storage, jaringan, serta consensus.

Siapa Target Audiens Kursus Ini

Software engineer, backend engineer, system engineer, dan mahasiswa tingkat lanjut yang sudah menguasai Go, concurrency, jaringan dasar, struktur data, serta konsep database dan ingin memahami cara kerja sistem terdistribusi melalui implementasi nyata.

Project outcomes

Apa yang Akan Anda Buat

Kamu akan membangun satu cluster database key-value terdistribusi berbasis Go dengan beberapa node. Client mengirim request ke leader, lalu leader mereplikasi command ke follower melalui Raft sebelum data dianggap committed. Database ini dilengkapi WAL agar data bisa dipulihkan setelah proses mati, snapshot untuk mengurangi ukuran log, serta mekanisme recovery saat node kembali bergabung ke cluster. Setiap bagian dibangun bertahap dengan contoh kode runnable, code breakdown, guided practice, dan tantangan mandiri supaya kamu benar-benar ngerti alur eksekusinya, bukan sekadar copy-paste.

Konten Kursus

Fondasi Arsitektur Database Key-Value Terdistribusi

5 pelajaran | 210 menit
Memetakan Komponen Database Key-Value
35 menit
Merancang API Get, Set, dan Delete
40 menit
Memahami Replication, Consistency, dan Availability
45 menit
Menyiapkan Struktur Proyek Go
40 menit
Membangun In-Memory Store dengan Test
50 menit

Concurrency dan Transport Layer dengan Go

5 pelajaran | 220 menit
Mengendalikan Shared State dengan Mutex
40 menit
Mendeteksi Race dengan Go Race Detector
35 menit
Membuat HTTP API untuk Operasi Key-Value
50 menit
Membangun RPC Sederhana Antarnode
50 menit
Menangani Timeout, Context, dan Shutdown
45 menit

Implementasi Raft untuk Consensus

5 pelajaran | 295 menit
Memahami State Raft dan Term
50 menit
Membangun Election Timeout dan Campaign
60 menit
Menerapkan Heartbeat dan Leader Election
60 menit
Memahami Log Entry dan AppendEntries
65 menit
Menghubungkan Raft dengan State Machine
60 menit

Write-Ahead Log dan Durability

5 pelajaran | 265 menit
Memahami Prinsip Write-Ahead Log
40 menit
Mendesain Format Record WAL
50 menit
Mengimplementasikan Append dan Sync
60 menit
Recovery dari WAL Saat Startup
60 menit
Menguji Crash Consistency dan Idempotency
55 menit

Snapshot dan Log Compaction

5 pelajaran | 260 menit
Kenapa Log Perlu Di-Compact
35 menit
Membuat Format Snapshot State
50 menit
Menulis Snapshot Secara Atomic
50 menit
Memangkas WAL Setelah Snapshot
60 menit
Mengimplementasikan InstallSnapshot ke Follower
65 menit

Operasional Cluster, Testing, dan Reliability

5 pelajaran | 270 menit
Membangun Test Cluster Multi-Node
50 menit
Menguji Node Failure dan Rejoin
60 menit
Membuat Integration Test untuk Consensus
65 menit
Menambahkan Logging dan Metrics Dasar
45 menit
Menganalisis Pitfall Produksi dan Batasan Desain
50 menit

Proyek Akhir: Membangun Distributed KV Store

5 pelajaran | 410 menit
Perancangan dan Setup Distributed KV Store
75 menit
Implementasi Raft dan Replication Command
90 menit
Integrasi WAL, Recovery, dan Snapshot
90 menit
Pengujian Failure Scenario dan Penyempurnaan API
80 menit
Deploy Lokal, Demo, dan Review Arsitektur
75 menit

Deskripsi Kursus

Kamu akan membangun database key-value terdistribusi dari nol menggunakan Go. Bukan cuma memanggil library lalu selesai, tapi memahami alur request, replication antar-node, leader election, log replication, dan cara cluster menjaga konsistensi data. Kita mulai dari fondasi yang cukup supaya konsep Raft tidak terasa seperti hafalan.

Rating & Ulasan

0 ratings