Digital Transformation
Circuit Breaker (Pola Pemutus Sirkuit)
Circuit Breaker adalah pola desain perangkat lunak yang memutus panggilan ke layanan eksternal saat sistem mendeteksi kegagalan beruntun, sehingga aplikasi tetap responsif dan tidak ikut tumbang.
TL;DR: Circuit Breaker adalah pola arsitektur yang menjaga aplikasi tetap stabil saat layanan dependensi gagal. Setelah jumlah error menembus ambang batas, "sirkuit" dibuka dan permintaan langsung ditolak tanpa menunggu timeout, mencegah cascading failure di seluruh sistem.
Apa itu Circuit Breaker?
Circuit Breaker adalah pola desain yang dipopulerkan Michael Nygard dalam buku Release It dan banyak dipakai di sistem terdistribusi seperti microservices, integrasi pihak ketiga, atau pemanggilan API LLM. Konsepnya meminjam dari sirkuit listrik. Saat ada beban berlebih atau kegagalan, sirkuit diputus untuk melindungi komponen lain. Pola ini relevan untuk tim Indonesia yang mengandalkan API pembayaran, layanan pengiriman, atau model AI eksternal yang kadang lambat saat trafik puncak.
Bedakan dengan retry strategi. Retry mencoba ulang permintaan yang gagal. Circuit Breaker memutus permintaan baru saat layanan target jelas-jelas tidak sehat, supaya retry tidak memperburuk kondisi.
Tiga Status Circuit Breaker
| Status | Perilaku | Kapan Pindah Status |
|---|---|---|
| Closed | Permintaan diteruskan normal | Saat error rate masih di bawah ambang batas |
| Open | Permintaan langsung gagal cepat | Setelah error rate menembus ambang dalam window tertentu |
| Half-Open | Sebagian permintaan dicoba untuk uji kesehatan | Setelah cooldown timer dari status Open habis |
Library populer seperti Resilience4j (Java), Polly (.NET), atau opossum (Node.js) sudah menyediakan implementasi siap pakai. Untuk stack Next.js plus serverless, pola serupa sering diimplementasikan dengan timeout agresif plus fallback cache di Redis.
Kenapa Penting?
Tanpa Circuit Breaker, kegagalan satu layanan bisa menjalar. Ketika layanan rekomendasi produk lambat, request handler menumpuk, thread pool penuh, dan keseluruhan website ikut down. Dampaknya bukan hanya teknis. Pengguna yang gagal checkout di hari diskon biasanya tidak kembali. Praktik Site Reliability Engineering modern menjadikan Circuit Breaker bersama error budget sebagai dua pilar dasar untuk menjaga uptime tanpa membakar tim.
Pertanyaan Umum
Apakah Circuit Breaker sama dengan rate limiting?
Tidak. Rate limiting membatasi jumlah permintaan masuk untuk melindungi sistem dari trafik berlebih. Circuit Breaker memutus permintaan keluar saat layanan tujuan tidak sehat. Keduanya saling melengkapi.
Berapa ambang batas error rate yang ideal?
Tidak ada angka mutlak. Praktik umum: 50% error rate dalam window 10 detik atau 20 permintaan terakhir. Layanan kritikal seperti pembayaran biasanya pakai ambang lebih ketat dengan window lebih pendek.