IOSOR Знање

API лимити од пилота до продукције: backoff без сагоревања prepaid

Пилотски и продукцијски лимити, експоненцијални backoff, идемпотентност, кључеви sandbox versus продукција и ограничени прозор replay webhook — да retry не испразне prepaid новчаник.

429 не позива да чекићате send API док нешто не прође. На prepaid retrystorm је догађај новчаника: двоструки OTP, наслагани аларми, неспарени редови ledger. Лимити постоје да производ, engineering и финансије деле један плафон. Од пилота до продукције није «склони cap» — уговорени лимити, backoff који поштује идемпотентност, одвојени кључеви sandbox и продукције, и прозор replay webhook који не дебитује двоструко. Види идемпотентност, понављања и новац.

IOSOR је prepaid white-label: аутентификовани позиви, корелабилни дебити, клијентски сигурне грешке које никад не изливају терет туђег бренда. live / in setup независно је од тога колико тврдо retrирате — коридор in setup не постаје Live јер је клијент loop-овао. Близу USD 1,000+ месечне употребе буџети retry и cutover кључева улазе у комерцијални преглед. Држите прелаз са sandbox-а на продукцију и потпис вебхука и прозор понављања у истом runbook.

Лимити штите prepaid, то није bug

Лимити ограничавају колико прихваћених intent удара у новчаник по прозору — не колико TCP покушаја је balancer направио. Документујте прозор (по кључу, налогу, класи дестинације), код и Retry-After. Клијент који чита 429 као «покушај јаче» трчи против финансија. Извезите одбијања лимита поред успешних дебита. Каталог live ипак стаје на објављеном плафону; in setup није неограничени sandbox.

Сигнал Engineering Новчаник
429 / Retry-After Backoff, поштујте прозор Нулла extra дебита за исти intent
5xx / timeout Retry у буџету са истим кључем идемпотентности Један дебит ако је први покушај слетео
4xx пословно одбијање Не retrирајте наслепо Без дебита, или именовани ред одбијања

Backoff без другог дебита: лимити са идемпотентношћу

Експоненцијални backoff без кључа идемпотентности је како дрхтава мрежа постаје два OTP. Кључ је јединствен по пословном intent, не по TCP покушају, и враћа исти прихваћени резултат у јасном TTL. Кориснички resend је друга продуктна радња са властитим лимитом. Stop ниског салда важи: retry не сме пробити празан новчаник.

Пилотски лимити versus продукција

Пилотски кључеви треба да буду тешњи: низак обим, брза видљивост, јефтине грешке. Продукцијски лимити су уговорени за коридоре које стварно вртите. Подизање плафона је промена налога са власником. Тестови оптерећења припадају sandbox кључевима; продукцијски кључ у soak сагорева prepaid. Не обећавајте продукцијски QPS док је коридор каталога in setup.

Кључеви и replay webhook у истом cutover

Лимити send не спасавају ако consumer webhook обради DLR двапут. Cutover: замрзните sandbox саобраћај, издајте продукцијске кључеве, усмерите webhook на продукцијске consumere, верификујте потписе, ограничите прозор replay, затим један прави intent. Поновљени callback у 02:00 треба да буде no-op, не други дебит. Одвојене тајне; никад их не лепите у ticket.

Црвене заставе

  • «Retry до 200» без кључа идемпотентности
  • 429 као меко 200
  • Продукцијски кључ у тесту оптерећења или URL sandbox webhook у продукцији
  • Прозор replay у недељама, или непотписани callback «за пилота»
  • Кориснички resend помешан у буџет auto-retry
  • Клијентске грешке које изливају сирове upstream кодове

Почетак са IOSOR

Запишите прозор лимита — по кључу, рачуну или класи одредишта — и Retry-After који ћете поштовати. Присилите 429, узмакните, па поновите исту намеру истим Idempotency-Key. Ledger мора показати један дебит. Замените sandbox кључ production-ом пре него дигнете плафон.

Резиме IOSOR

Радите: третирајте 429 као паузу са Retry-After, не као меки успех. Сваки backoff вежите за изворни кључ да prepaid види једну прихваћену намеру.

Не радите: дизати production лимите на кључу теста оптерећења нити млатити до 200 без кључа док новчаник не изгледа као extra потрошња.

Да ли је овај водич био корistan?

Повезани водичи