Merancang circuit breaker untuk API AI

Merancang circuit breaker untuk API AI: panduan production dengan keputusan eksplisit, artefak reusable, uji gagal, sinyal operasi, dan batas berbasis sumber.

Merancang circuit breaker untuk API AI: panduan production dengan keputusan eksplisit, artefak reusable, uji gagal, sinyal operasi, dan batas berbasis sumber.

Jawaban langsung

Terapkan Merancang circuit breaker untuk API AI sebagai kontrak kontrol keandalan, bukan konfigurasi sekali pakai. Kunci protokol, owner, bukti, dan rollback sebelum traffic dipindah. Titik kontrol: closed, open, half_open, failure_window.

Kesimpulan dikunci oleh tabel kontrak dan contoh deterministik. ai-api-circuit-breaker tidak boleh rollout bila kontrol wajib tidak memiliki bukti wire, readback persisten, atau owner.

Cakupan dan tanggung jawab

Pisahkan tugas client dari control plane. Client memiliki file atau variabel; gateway memiliki autentikasi, routing, limit, akuntansi, dan attempt; provider memiliki protokol native dan kemampuan yang berubah. Satu respons teks hanya membuktikan satu jalur.

Artikel memiliki keputusan, risiko, dan verifikasi; dokumentasi live memiliki perintah dan langkah UI yang berubah. Ini membentuk pohon kemampuan tanpa menggandakan owner intent pencarian.

Catatan owner halaman ini adalah ai-api-circuit-breaker; kontrol tetapnya closed, open, half_open, failure_window. Setiap nilai ditinjau pada batas wire atau status persisten, bukan disimpulkan dari label pemasaran.

Artefak praktis: Merancang circuit breaker untuk API AI

Catatan review berikut adalah artefak yang dikirim. Nilai teknis eksplisit memungkinkan perbandingan konfigurasi, bukti wire, dan status persisten tanpa screenshot.

Kontrol Keputusan tetap Bukti
breaker_key provider_route_plus_protocol_plus_failure_class route_id + endpoint + normalized_error_class
closed_state rolling_window_with_minimum_sample eligible_attempts + failures + window_bounds
open_state fail_fast_without_upstream_attempt decision_timestamp + reopen_at + returned_error
half_open_state bounded_probe_concurrency probe_count + outcomes + state_transition
fallback same_contract_eligible_route_only eligibility_reason + route_choice + terminal_state
operator_override time_bounded_and_audited actor + reason + expiry + restored_policy

Contoh deterministik

Contoh hanya memakai placeholder dan input deterministik. Ganti dengan identifier yang ditinjau, bukan secret atau konten pelanggan, dan simpan snapshot tepat.

state = CLOSED
if eligible_failures(window) >= threshold and samples >= minimum:
  state = OPEN
  reopen_at = now + cool_down
if state == OPEN and now < reopen_at:
  return fail_fast
if state == OPEN and now >= reopen_at:
  state = HALF_OPEN
if bounded_probe_succeeds():
  state = CLOSED
else:
  state = OPEN

Tahap verifikasi

Jalankan tahap secara berurutan. Keberhasilan tahap akhir tidak mengganti batas yang hilang; setiap attempt harus terhubung ke satu permintaan logis.

  1. Bekukan client, kebijakan gateway, alias model, route, dan baseline observasi. Bukti untuk breaker_key: terapkan provider_route_plus_protocol_plus_failure_class dan simpan route_id + endpoint + normalized_error_class.
  2. Jalankan probe positif deterministik dan simpan respons, request ID, route, status akhir, dan usage. Bukti untuk closed_state: terapkan rolling_window_with_minimum_sample dan simpan eligible_attempts + failures + window_bounds.
  3. Jalankan kasus negatif, limit, atau disconnect pasangannya dan periksa lapisan gagal. Bukti untuk open_state: terapkan fail_fast_without_upstream_attempt dan simpan decision_timestamp + reopen_at + returned_error.
  4. Ulangi lewat protokol nyata; jangan simpulkan dukungan native dari endpoint lain. Bukti untuk half_open_state: terapkan bounded_probe_concurrency dan simpan probe_count + outcomes + state_transition.
  5. Rollout ke cohort terbatas dengan owner, kedaluwarsa, ambang berhenti, dan rollback. Bukti untuk fallback: terapkan same_contract_eligible_route_only dan simpan eligibility_reason + route_choice + terminal_state.
  6. Baca ulang konfigurasi dan akuntansi persisten; hapus akses dan data sementara. Bukti untuk operator_override: terapkan time_bounded_and_audited dan simpan actor + reason + expiry + restored_policy.

Kegagalan yang harus dicegah

Setiap poin berikut memblokir publikasi. HTTP 200, dashboard, atau satu demo tidak menggantikan kontrol ini.

  • global_breaker — Jika global_breaker terjadi, hentikan rollout dan gunakan owner, bukti, serta rollback yang ditetapkan; probe sukses tidak membatalkannya.
  • mixed_denominator — Jika mixed_denominator terjadi, hentikan rollout dan gunakan owner, bukti, serta rollback yang ditetapkan; probe sukses tidak membatalkannya.
  • half_open_stampede — Jika half_open_stampede terjadi, hentikan rollout dan gunakan owner, bukti, serta rollback yang ditetapkan; probe sukses tidak membatalkannya.
  • fallback_cascade — Jika fallback_cascade terjadi, hentikan rollout dan gunakan owner, bukti, serta rollback yang ditetapkan; probe sukses tidak membatalkannya.

Sinyal dan kondisi berhenti

Amati sukses dan dampak buruk bersama. Ambang adalah kebijakan workload; tetapkan SLO dan denominator sebelum jendela.

Sinyal Ambang Tindakan
eligible_failure_ratio reviewed_window_and_minimum_sample open_route_breaker
open_fail_fast_latency <_caller_remaining_deadline repair_local_decision_path
half_open_probe_concurrency <=_configured_probe_limit reject_extra_probes
fallback_headroom >=_required_reserved_capacity shed_load_instead_of_failover

Batas Modelflare

Modelflare memusatkan routing kompatibel dan native, key terbatas, grup, usage, dan kegagalan. Channel terkonfigurasi tidak membuktikan semua field, alias, janji retensi, region, atau fallback. Verifikasi secara native dan gunakan settlement persisten sebagai kebenaran biaya.

Ini metode implementasi, bukan sertifikasi, kesimpulan hukum, riwayat uptime, atau benchmark universal. Periksa kontrak, model, harga, retensi, dan region pada T-1; pindahkan tanggal bila fakta inti berubah.

Lanjutkan cluster topik

Artikel induk membahas keputusan luas, artikel saudara langkah berikutnya, dan dokumentasi konfigurasi saat ini. Link isi diperlukan karena managed CMS belum memiliki related-slug.

Pertanyaan umum

Merancang circuit breaker untuk API AI: Apakah satu permintaan sukses cukup?

Tidak. Kasus negatif, rollout terbatas, readback persisten, dan kondisi berhenti adalah gate terpisah.

Merancang circuit breaker untuk API AI: Apakah model dan harga dikunci berbulan-bulan?

Tidak. Gunakan placeholder atau snapshot dan validasi ulang pada T-1.

Merancang circuit breaker untuk API AI: Bukti apa yang disimpan?

ID tanpa data sensitif, versi, waktu, status, usage, biaya final, dan keputusan review.

Sumber dan tanggal verifikasi

Sumber diperiksa pada 2026-08-07. Sumber menetapkan kontrak dan prinsip, bukan route yang belum diuji atau keadaan masa depan.