IOSOR Znalosti

Limity rychlosti API od pilotu k produkci: backoff bez pálení prepaid

Pilotní a produkční limity, exponenciální backoff, idempotence, sandbox versus produkční klíče a ohraničené okno replay webhooku — aby retry nevyprázdnily prepaid peněženku.

429 není pozvánka mlátit send API, dokud něco neprojde. Na prepaid je retrystorm událost peněženky: dvojité OTP, naskládané alerty, nespárované řádky ledgeru. Limity existují, aby produkt, engineering a finance sdílely jeden strop. Od pilotu k produkci není „sejmout cap“ — smluvní limity, backoff ctící idempotenci, oddělené sandbox a produkční klíče a okno replay webhooku, které nedebituje dvakrát. Viz idempotence, opakování a peníze.

IOSOR je white-label prepaid: autentizovaná volání, korelovatelné debety, client-safe chyby, které nikdy nevyklopí cizí značkové payloady. live / in setup je nezávislé na tom, jak tvrdě retryujete — koridor in setup se nestane Live proto, že klient zacyklil. Blízko USD 1,000+ měsíčního usage jdou retry rozpočty a cutover klíčů do komerční review. Držte přechod ze sandboxu do produkce a podpis webhooku a okno replay ve stejném runbooku.

Limity chrání prepaid, není to bug

Limity omezují, kolik přijatých intentů zasáhne peněženku za okno — ne kolik TCP pokusů udělal balancer. Dokumentujte okno (na klíč, účet, třídu destinace), kód a Retry-After. Klient, který čte 429 jako „zkus silněji“, závodí s finance. Exportujte odmítnutí limitu vedle úspěšných debetů. Katalog live stejně zastaví na publikovaném stropu; in setup není neomezený sandbox.

Signál Engineering Peněženka
429 / Retry-After Backoff, ctít okno Nula navíc debetu pro stejný intent
5xx / timeout Retry v rozpočtu se stejným idempotenčním klíčem Jeden debet, pokud první pokus přistál
4xx business reject Neretryovat naslepo Žádný debet, nebo pojmenovaný reject řádek

Backoff bez druhého debetu: limity s idempotencí

Exponenciální backoff bez idempotenčního klíče z chvějící sítě udělá dvě OTP. Klíč je unikátní na business intent, ne na TCP pokus, a vrací stejný accepted výsledek uvnitř jasného TTL. User resend je jiná produktová akce s vlastním limitem. Low-balance stop platí: retry nesmí prorazit prázdnou peněženku.

Pilotní limity versus produkční limity

Pilotní klíče mají být tužší: nízký objem, rychlá viditelnost, levné chyby. Produkční limity jsou smluvní pro koridory, které opravdu běžíte. Zvednout strop je změna účtu s vlastníkem. Load testy patří na sandbox klíče; produkční klíč v soak spálí prepaid. Neslibujte produkční QPS, dokud je katalogový koridor in setup.

Klíče a replay webhooku ve stejném cutoveru

Send limity vás nezachrání, pokud webhook consumer zpracuje DLR dvakrát. Cutover: zmrazit sandbox provoz, vydat produkční klíče, namířit webhooky na produkční consumery, ověřit podpisy, omezit okno replay, pak jeden skutečný intent. Opakovaný callback ve 02:00 musí být no-op, ne druhý debet. Oddělená tajemství; nikdy je nevkládejte do ticketu.

Červené vlajky

  • „Retry do 200“ bez idempotenčního klíče
  • 429 jako měkké 200
  • Produkční klíč v load testu nebo sandbox webhook URL v produkci
  • Okno replay v týdnech, nebo nepodepsané callbacky „pro pilot“
  • User resend smíchaný do auto-retry rozpočtu
  • Chyby klientovi, které dumpují syrové upstream kódy

Začít s IOSOR

Zapište okno limitu — na klíč, účet nebo třídu destinace — a Retry-After, které budete ctít. Vynuťte 429, couvněte a zkuste stejný záměr znovu se stejným Idempotency-Key. Ledger musí ukázat jeden debit. Vyměňte sandbox klíč za production, než zvednete strop.

Shrnutí IOSOR

Dělejte: berte 429 jako pauzu s Retry-After, ne jako měkký úspěch. Každý backoff spojte s původním klíčem, ať prepaid vidí jeden přijatý záměr.

Nedělejte: zvedat production limity na klíči zátěžového testu ani mlátit do 200 bez klíče, až peněženka vypadá jako extra spotřeba.

Byl tento průvodce užitečný?

Související průvodci