Menangani 429 tanpa badai retry

Panduan production: Menangani 429 tanpa badai retry. Panduan ini memuat artefak deterministik, batas kegagalan, kontrol rollout, dan sumber terverifikasi.

Menangani 429 tanpa badai retry

Panduan production: Menangani 429 tanpa badai retry. Panduan ini memuat artefak deterministik, batas kegagalan, kontrol rollout, dan sumber terverifikasi.

Keputusan lebih dahulu

Menangani 429 tanpa badai retry adalah kontrak production yang eksplisit, bukan perubahan terpisah. Tetapkan sukses, gagal terminal, dan rollback sebelum memindahkan traffic; artefak memisahkan bukti dari asumsi.

Mulai dari classification, buktikan retry_after dengan kasus deterministik, dan jadikan terminal sebagai release gate.

Artefak yang dapat digunakan ulang

Satu baris hanya lolos bila buktinya berasal dari request, jendela pengujian, atau versi konfigurasi yang sama.

Checkpoint Bukti yang disimpan Syarat lulus
classification 429_source:_application,gateway,provider,or_shared_pool Record menghubungkan request logis dan attempt tertentu.
retry_after delta-seconds_or_HTTP-date_parsed_against_a_monotonic_deadline Nilai dipertahankan dan dibandingkan tepat di batas wire.
jitter bounded_random_delay_after_server_guidance Batas eksplisit dan gagal tertutup saat terlampaui.
attempts one_end-to-end_attempt_budget_shared_by_every_layer Batas eksplisit dan gagal tertutup saat terlampaui.
concurrency admission_reduced_before_retry_volume_grows Batas eksplisit dan gagal tertutup saat terlampaui.
terminal final_429_returned_with_request_ID_and_no_hidden_retries Owner, sumber, tanggal, dan batas tercatat.

Contoh terhitung

Contoh memakai data sintetis dan deterministik. Ganti dengan nilai workload yang ditinjau; jangan masukkan secret atau data pelanggan.

attempt_budget = 3
for attempt in 1..attempt_budget:
  result = call_once()
  if result.status != 429: return result
  if request.deadline_expired(): break
  delay = parse_retry_after(result.headers) ?? bounded_backoff(attempt)
  reduce_admission_concurrency()
  wait(min(delay + full_jitter(), request.remaining_time))
return terminal_429_without_another_retry()

Prosedur implementasi

  1. Bekukan request, response, konfigurasi, dan baseline observasi.
  2. Jalankan kasus positif deterministik dan simpan hasil lengkap.
  3. Jalankan kasus negatif atau batas pasangannya.
  4. Hubungkan semua attempt ke satu request ID logis dan catat waktu, status akhir, serta usage tanpa konten sensitif.
  5. Rollout hanya ke kohort terbatas dengan kondisi berhenti.
  6. Baca ulang state persisten dan perilaku publik; rollback bila invariant gagal.

Mode kegagalan

Kegagalan berikut membatalkan hasil meski HTTP luar tampak berhasil:

  • Retry tanpa attempt budget memperbesar beban.
  • Pembatalan tidak mencapai antrean atau upstream dan tetap memakai kapasitas.
  • Satu response teks dianggap bukti kompatibilitas lengkap.
  • Prompt, key, atau argumen sensitif direkam ke telemetri.

Batas Modelflare

Modelflare memusatkan routing kompatibel OpenAI, key, group, usage, dan penanganan gagal, tetapi rute terkonfigurasi bukan bukti semua kemampuan provider. Verifikasi model dan channel lewat protokol native, pertahankan nol eksplisit, dan gunakan settlement persisten sebagai kebenaran billing.

Gunakan panduan induk untuk batas keputusan dan dokumentasi untuk konfigurasi client terkini.

Checklist sebelum publikasi

  • Jawab pertanyaan utama sebelum latar belakang.
  • Tetapkan owner untuk setiap field, state, metric, dan formula.
  • Gunakan identifier sintetis saja.
  • Pertahankan struktur, kode, batas, dan peringatan di semua bahasa.
  • Periksa ulang kontrak, dukungan, dan harga pada T-1; pindahkan tanggal jika fakta berubah.
  • Sebelum waktunya, keluarkan dari public API, rute, dan sitemap.

Sumber dan tanggal verifikasi

Sumber diperiksa pada 2026-08-07 dan tidak membuktikan rute yang belum diuji.