Langsung ke konten

Arsip

Resilience

4 artikel
Rekayasa Perangkat Lunak 22 Sep 2026 7 min read

Circuit Breaker Menghentikan Panggilan Berulang ke Dependency yang Gagal

Circuit Breaker Menghentikan Panggilan Berulang ke Dependency yang Gagal Dependency yang sudah gagal dapat menghabiskan kapasitas caller lebih besar daripada dependency yang sehat. Request menunggu timeout, retry menambah traffic, connection pool tetap terisi, dan slot worker tertahan oleh pekerjaan yang kecil kemungkinannya selesai. Circuit breaker menempatkan gate yang memiliki state di depan dependency agar caller dapat berhenti mengirim panggilan setelah bukti kegagalan mencapai batas yang dikonfigurasi. Gate ini bukan pengganti timeout, retry, atau capacity limit. Fungsinya mengoordinasikan panggilan berulang dalam aliran request. Ketika dependency terlihat tidak sehat, breaker menggagalkan panggilan baru secara lokal selama suatu periode, alih-alih terus meminta sistem remote membuktikan kegagalan yang sama.

Rekayasa Perangkat Lunak 21 Sep 2026 6 min read

Circuit Breaker Membatasi Panggilan ke Dependency yang Bermasalah

Circuit Breaker Membatasi Panggilan ke Dependency yang Bermasalah Dependency remote dapat mengalami kegagalan yang menetap sekaligus mahal. Koneksi mencapai timeout, worker slot tetap terpakai, request queue membesar, dan retry menambah traffic ke service yang sedang tidak mampu merespons. Caller yang terus mengirim kelas request yang sama dapat mengubah satu kegagalan dependency menjadi tekanan pada process miliknya sendiri. Circuit breaker menempatkan keputusan admission yang memiliki state di depan panggilan tersebut. Selama dependency beroperasi dalam batas policy, panggilan diteruskan. Setelah kegagalan yang memenuhi kriteria melewati ambang, breaker menjadi open dan menolak panggilan baru secara lokal selama periode tertentu. Pemulihan diuji dengan traffic terbatas, bukan dengan langsung mengembalikan seluruh load normal.

Rekayasa Perangkat Lunak 20 Sep 2026 5 min read

Hedged Request Menukar Kerja Tambahan dengan Tail Latency yang Lebih Rendah

Sebuah service dapat memiliki median latency yang sehat tetapi sesekali menghasilkan request yang jauh lebih lambat daripada request lain. Queueing, replica yang lambat, connection setup, garbage collection, storage stall, atau gangguan network sementara dapat menahan satu attempt sementara kapasitas ekuivalen di jalur lain masih tersedia. Hedged request membatasi paparan terhadap satu jalur lambat tersebut. Client memulai satu attempt seperti biasa. Jika attempt itu masih pending setelah jeda yang ditentukan, client dapat memulai attempt ekuivalen kedua. Hasil layak pertama dipakai, lalu attempt yang tersisa dibatalkan jika cancellation didukung.

Rekayasa Perangkat Lunak 19 Sep 2026 6 min read

Circuit Breaker Membatasi Amplifikasi Kegagalan Antar-Service

Sebuah service call dapat gagal dengan cepat tetapi tetap menimbulkan masalah yang lebih besar pada sistem. Ketika setiap request upstream terus memanggil dependency downstream yang sedang gagal, setiap percobaan menghabiskan kapasitas koneksi, waktu worker, retry budget, dan ruang queue. Dependency menerima traffic yang belum mampu dilayaninya, sementara caller menghabiskan resource untuk menunggu hasil yang sangat berkorelasi dengan kegagalan sebelumnya. Circuit breaker menempatkan batas keputusan yang memiliki state di depan call tersebut. Alih-alih memperlakukan setiap request sebagai kesempatan terpisah untuk mencoba dependency, breaker mencatat state kegagalan terbaru dan dapat menolak call secara lokal selama interval terbatas. Pemulihan kemudian diuji melalui probe terkontrol, bukan dengan langsung mengembalikan seluruh traffic.