Part 2 — The CAP Theorm

Muhammad Hafidz
3 min readMar 7, 2024

--

Apache Cassandra Series

CAP Theory

CAP Theory (Consistency, Availability, Partition tolerance) adalah konsep dalam desain database terdistribusi. Teori ini menyatakan bahwa dalam sistem terdistribusi, tidak mungkin untuk mencapai ketiga karakteristik utama ini secara bersamaan secara penuh. Sebagai gantinya, desainer sistem harus memilih kompromi antara ketiganya sesuai dengan kebutuhan aplikasi.

Consistency (Konsistensi): Memastikan bahwa semua node dalam sistem memiliki salinan data yang konsisten pada waktu tertentu. Dalam konteks ini, konsistensi mengacu pada kepastian data yang dikembalikan adalah data paling baru dan data di semua node adalah sama.

Availability (Ketersediaan): Memastikan bahwa setiap permintaan yang diberikan kepada sistem akan menerima respons sukses atau gagal, tanpa mengalami penundaan yang berlebihan. Dalam konteks ini, ketersediaan berarti sistem selalu siap digunakan, bahkan dalam kondisi kegagalan tertentu, dan mampu memberikan respons terhadap permintaan pengguna.

Partition tolerance (Toleransi Partisi): Sistem dapat tetap beroperasi secara normal meskipun terjadi kegagalan komunikasi antara node-node sistem. Dalam skenario terdistribusi, partisi terjadi ketika node-node dalam sistem tidak lagi dapat berkomunikasi satu sama lain. Toleransi partisi memungkinkan sistem untuk tetap berfungsi meskipun bagian dari infrastrukturnya mengalami kegagalan atau tidak dapat diakses.

Apache Cassandra sendiri adalah database yang berfokus pada Partition Tolerance dan Avaiability, yang mana akan membuat data yang disimpan di Cassandra tidak selalu konsisten.

Kesimpulan

CAP Theory adalah konsep penting dalam desain database terdistribusi yang menggambarkan bahwa tidak mungkin untuk mencapai ketiga karakteristik utama, yaitu Consistency, Availability, dan Partition Tolerance secara bersamaan secara penuh. Desainer sistem harus memilih kompromi sesuai dengan kebutuhan aplikasi. Consistency menjamin bahwa semua node memiliki salinan data yang konsisten, Availability memastikan respons sistem terhadap permintaan pengguna tanpa penundaan yang berlebihan, dan Fault Tolerance memungkinkan sistem untuk tetap beroperasi meskipun terjadi kegagalan komunikasi antara node-node. Apache Cassandra, sebagai contoh, menekankan toleransi partisi dan ketersediaan, yang dapat mengakibatkan ketidakkonsistenan data dalam sistem.

🔔 Jika anda menyukai artikel ini, silahkan subscribe agar anda bisa mendapatkan notifikasi jika ada artikel baru atau anda bisa melihat artikel yang telah dipublikasikan disini. 🚀

📝 Jika ada pertanyaan atau saran, anda bisa menulisnya di kolom komentar atau mengirim pesan lewat Medium.

Thank you for your support! 🌟

--

--