Dalam sistem terdistribusi, komponen berjalan dalam proses terpisah atau pada mesin yang berbeda. Komponen-komponen ini bisa berupa layanan aplikasi, replika basis data, atau pekerja latar belakang. Karena sistem dibagi menjadi banyak bagian, sering kali satu komponen perlu berkomunikasi dengan komponen lain untuk menyelesaikan sesuatu, dan mungkin harus menunggu respons dari komponen tersebut.
Anda dapat memandang koordinasi sebagai komunikasi antarkomponen seperti ini. Misalnya, satu layanan mungkin menunggu layanan lain menyetujui sebuah permintaan. Basis data mungkin menunggu konfirmasi dari replikanya. Pekerja mungkin menunggu sebuah kunci. Setiap penantian ini menambah ketergantungan, dan ketergantungan itulah tempat sistem terdistribusi mengalami masalah.
Artikel ini membahas mengapa koordinasi menjadi tantangan bagi sistem terdistribusi. Pembahasan mencakup mengapa koordinasi menjadi sulit, bagaimana koordinasi bertambah seiring membesarnya sistem, dan bagaimana koordinasi dapat dikurangi. Perancang yang meminimalkan titik-titik ketika komponen harus saling menunggu dapat membangun sistem yang lebih tangguh, lebih mudah diskalakan, dan lebih mudah dioperasikan.
Gagasan utamanya adalah bahwa independensi umumnya lebih diinginkan daripada koordinasi. Ketika sebuah komponen dapat maju sendiri tanpa menunggu yang lain, sistem cenderung lebih baik menoleransi kegagalan, lonjakan latensi, dan beban. Strategi untuk menangani koordinasi, ketika koordinasi tidak dapat dihindari, menjadi fokus bagian-bagian berikutnya.
Sumber: ByteByteGo · Diringkas oleh HeadlinesBriefing