Bu Tidak Ada Teman Menangis Malam IniBu, aku berusaha tidak hancur dihantam hidup meski sesekali rasanya hampir redup. Aku terus melawan pada dunia ini meski banyak tangis yang kusimpan sendiri. Buy |
Seiring dengan perkembangan teknologi dan bisnis yang begitu cepat, Aplikasi yang sebelumnya di bangun dengan konsep microservice telah berubah menjadi sekumpulan app yang besar.
Tentunya ini mempengaruhi arsitektur sistem yang ada, tidak lagi hanya sekedar microservice tapi telah berubah menjadi sistem terdistribusi.
Pada arsitektur sistem terdistribusi kita sering mendengar konsep Two-Phase Commit, apa itu two-phase commit yuks kita bahas sama-sama.
Two-Phase Commit merupakan protokol standar yang memastikan bahwa commit basis data di implementasikan dalam situasi dimana operasi commit harus dibagi kedalam dua bagian yang terpisah.
Pada manajemen basis data, menyimpan perubahan data dikenal sebagai commit dan membatalkan perubahan dikenal sebagai rollback.
Keduanya bisa dicapai dengan mudah menggunakan pencatatan transaksi ketika dilakukan dalam satu server.
Tetapi ketika data tersebar kedalam server yang berbeda geografis dan sistem menjadi entitas independen dengan log terpisah, proses commit akan menjadi lebih rumit.
two-phase commit ilustration // google image
Dalam hal ini, objek khusus diperlukan untuk menjadi koordinator agar transaksi divalidasi.
Sesuai dengan namanya, koordinator mengatur kegiatan dan sinkronisasi antar server .
Untuk menangani hal ini Two-Phase Commit diimplementasikan, berikut fase-fase yang dilakukan :
Jika server tidak berhasil, ia merespon dengan pesan gagal. Jika berhasil, server merespon dengan pesan OK.
Setelah melakukan commit, masing-masing menulis commit sebagai bagian dari catatan lognya dan mengirimkan pesan kepada koordinator bahwa commit-nya telah berhasil.
Jika salah satu server ada yang gagal, koordinator akan mengirimkan instruksi ke semua server untuk me-rollback kembali transaksi.
Setelah server me-rollback kembali, masing-masing mengirimkan umpan balik bahwa proses telah selesai.
Baca artikel lainya: