Halo Sobat IT!

Dalam sistem modern, khususnya yang berbasis microservices, sebuah aplikasi jarang berdiri sendiri. Biasanya, satu service akan bergantung pada service lain mulai dari database, API eksternal, hingga layanan pihak ketiga. Masalahnya, bagaimana jika salah satu service tersebut gagal? Tanpa mekanisme perlindungan, kegagalan kecil bisa menyebar dan menyebabkan seluruh sistem ikut tumbang. Di sinilah Circuit Breaker Pattern berperan penting.

Apa Itu Circuit Breaker Pattern?

Circuit Breaker Pattern adalah pola desain dalam software engineering yang digunakan untuk mencegah sistem terus mencoba request ke layanan yang sedang gagal.

Konsepnya mirip dengan sekring listrik:

  • Jika terjadi gangguan, arus akan diputus sementara
  • Setelah kondisi stabil, arus akan kembali normal

Dalam sistem IT, circuit breaker akan:

  • Menghentikan request sementara ke service yang bermasalah
  • Mencegah overload
  • Memberi waktu untuk recovery

Mengapa Circuit Breaker Itu Penting?

  1. Mencegah Efek Domino (Cascade Failure)
    Jika satu service gagal dan tetap dipanggil terus-menerus:
    1. Server akan overload
    2. Resource habis
    3. Service lain ikut terdampak
      Circuit breaker menghentikan rantai kegagalan ini.
  2. Mengurangi Latency
    Tanpa circuit breaker, sistem akan terus menunggu response dari service yang lambat atau down. Dengan circuit breaker:
    1. Request langsung ditolak lebih cepat
    2. Sistem tetap responsif
  3. Meningkatkan Stabilitas Sistem
    Sistem tetap bisa berjalan meskipun ada komponen yang gagal.

Cara Kerja Circuit Breaker

Circuit breaker memiliki tiga state utama:

  1. Closed (Normal)
    1. Semua request berjalan normal
    2. Sistem memonitor apakah terjadi error
  2. Open (Terputus)
    1. Jika error melebihi threshold
    2. Semua request ke service langsung ditolak
    3. Tidak ada percobaan koneksi
  3. Half-Open (Percobaan)
    1. Setelah beberapa waktu
    2. Sistem mencoba beberapa request
    3. Jika berhasil akan kembali ke Closed
    4. Jika gagal akan kembali ke Open

Contoh di Dunia Nyata

Circuit breaker banyak digunakan di:

  • Sistem e-commerce
  • Layanan pembayaran
  • API eksternal (misalnya cuaca, maps)
  • Microservices architecture

Contoh kasus:
Jika API pembayaran down, sistem tidak terus mencoba, tetapi langsung memberikan respon fallback seperti "Coba lagi nanti".

Best Practice

  1. Gunakan Fallback
    Berikan alternatif seperti:
    1. Data cache
    2. Pesan error yang jelas
  2. Tentukan Threshold yang Tepat
    1. Terlalu sensitif - sering memutus
    2. Terlalu longgar - tidak efektif
  3. Kombinasikan dengan Retry
    Gunakan retry dengan batas tertentu sebelum circuit breaker aktif.
  4. Monitoring
    Pantau:
    1. Jumlah error
    2. Latency
    3. State circuit breaker

Tantangan dalam Implementasi

  • Menentukan konfigurasi yang optimal
  • Menangani distributed system
  • Memastikan fallback tetap berguna
  • Sinkronisasi antar service

Penutup

Circuit Breaker Pattern bukan hanya solusi teknis, tetapi strategi untuk menjaga sistem tetap stabil di tengah kegagalan. Dalam dunia nyata, kegagalan itu pasti terjadi. Yang membedakan sistem yang baik adalah: bagaimana sistem tersebut merespons kegagalan. Jadi, Sobat IT apakah sistem-mu sudah siap menghadapi kegagalan tanpa ikut tumbang?