IOSOR Vedomosti

Limity rýchlosti API od pilotu k produkcii: backoff bez pálenia prepaid

Pilotné a produkčné limity, exponenciálny backoff, idempotencia, sandbox versus produkčné kľúče a ohraničené okno replay webhooku — aby retry nevyprázdnili prepaid peňaženku.

429 nie je pozvánka mlátiť send API, kým niečo neprejde. Na prepaid je retrystorm udalosť peňaženky: dvojité OTP, naskladané alerty, nespárované riadky ledgeru. Limity existujú, aby produkt, engineering a finance zdieľali jeden strop. Od pilotu k produkcii nie je „zober cap“ — zmluvné limity, backoff ctíci idempotenciu, oddelené sandbox a produkčné kľúče a okno replay webhooku, ktoré nedebituje dvakrát. Pozri idempotencia, opakovania a peniaze.

IOSOR je white-label prepaid: autentizované volania, korelované debety, client-safe chyby, ktoré nikdy nevyklopía cudzie značkové payloady. live / in setup je nezávislé od toho, ako tvrdo retryujete — koridor in setup sa nestane Live preto, že klient zacyklil. Blízko USD 1,000+ mesačného usage idú retry rozpočty a cutover kľúčov do komerčnej review. Držte prechod zo sandboxu do produkcie a podpis webhooku a okno opakovania v tom istom runbooku.

Limity chránia prepaid, nie je to bug

Limity obmedzujú, koľko prijatých intentov zasiahne peňaženku za okno — nie koľko TCP pokusov urobil balancer. Dokumentujte okno (na kľúč, účet, triedu destinácie), kód a Retry-After. Klient, ktorý číta 429 ako „skús silnejšie“, preteká s finance. Exportujte odmietnutia limitu vedľa úspešných debetov. Katalóg live aj tak zastaví na publikovanom strope; in setup nie je neobmedzený sandbox.

Signál Engineering Peňaženka
429 / Retry-After Backoff, ctiť okno Nula navyše debetu pre ten istý intent
5xx / timeout Retry v rozpočte s tým istým idempotenčným kľúčom Jeden debet, ak prvý pokus pristál
4xx business reject Neretryovať naslepo Žiadny debet, alebo pomenovaný reject riadok

Backoff bez druhého debetu: limity s idempotenciou

Exponenciálny backoff bez idempotenčného kľúča z chvejúcej siete urobí dve OTP. Kľúč je unikátny na business intent, nie na TCP pokus, a vracia ten istý accepted výsledok v jasnom TTL. User resend je iná produktová akcia s vlastným limitom. Low-balance stop platí: retry nesmie preraziť prázdnu peňaženku.

Pilotné limity versus produkčné limity

Pilotné kľúče majú byť tuhšie: nízky objem, rýchla viditeľnosť, lacné chyby. Produkčné limity sú zmluvné pre koridory, ktoré naozaj bežíte. Zdvihnúť strop je zmena účtu s vlastníkom. Load testy patria na sandbox kľúče; produkčný kľúč v soak spáli prepaid. Nesľubujte produkčné QPS, kým je katalógový koridor in setup.

Kľúče a replay webhooku v tom istom cutoveri

Send limity vás nezachránia, ak webhook consumer spracuje DLR dvakrát. Cutover: zmraziť sandbox prevádzku, vydať produkčné kľúče, namieriť webhooky na produkčné consumery, overiť podpisy, obmedziť okno replay, potom jeden skutočný intent. Opakovaný callback o 02:00 musí byť no-op, nie druhý debet. Oddelené tajomstvá; nikdy ich nevkladajte do ticketu.

Červené vlajky

  • „Retry do 200“ bez idempotenčného kľúča
  • 429 ako mäkké 200
  • Produkčný kľúč v load teste alebo sandbox webhook URL v produkcii
  • Okno replay v týždňoch, alebo nepodpísané callbacky „pre pilot“
  • User resend zmiešaný do auto-retry rozpočtu
  • Chyby klientovi, ktoré dumpujú surové upstream kódy

Začať s IOSOR

Zapíšte okno limitu — na kľúč, účet alebo triedu destinácie — a Retry-After, ktoré budete ctiť. Vynúťte 429, couvnite a skúste rovnaký zámer znova s tým istým Idempotency-Key. Ledger musí ukázať jeden debet. Vymeňte sandbox kľúč za production, kým zdvihnete strop.

Zhrnutie IOSOR

Robte: berte 429 ako pauzu s Retry-After, nie ako mäkký úspech. Každý backoff spojte s pôvodným kľúčom, nech prepaid vidí jeden prijatý zámer.

Nerobte: zdvíhať production limity na kľúči záťažového testu ani biť do 200 bez kľúča, kým peňaženka nevyzerá ako extra spotreba.

Pomohol tento sprievodca?

Súvisiace návody