IOSOR Teadmised

API piirangud piloodist tootmiseni: backoff ilma prepaid põletamata

Piloodi- ja tootmispiirangud, eksponentsiaalne backoff, idempotentsus, sandbox versus tootmisvõtmed ja piiratud webhook-replay aken — et retryd ei tühjendaks prepaid rahakotti.

429 ei kutsu send API-d vasardama, kuni midagi läbi ei lähe. Prepaidil on retrystorm rahakoti sündmus: topelt OTP, virnastatud teavitused, paarimata ledger read. Piirangud on olemas, et toode, engineering ja rahandus jagaksid üht lage. Piloodist tootmiseni ei ole «eemalda cap» — lepingulised piirangud, backoff mis austab idempotentsust, eraldi sandbox- ja tootmisvõtmed ning webhook-replay aken, mis ei deebeteeri kahekordselt. Vaadake idempotentsus, korduskatsed ja raha.

IOSOR on white-label prepaid: autentitud kõned, korreleeritavad deebetid, klienditurvalised vead, mis ei kunagi voola võõra kaubamärgi koormat. live / in setup on sõltumatu sellest, kui kõvasti retrite — koridor in setup ei muutu Liveks, sest klient loopis. Lähedal USD 1,000+ kuukasutusele lähevad retry eelarved ja võtme-cutover ärilisse ülevaatesse. Hoidke üleminek liivakastist tootmisse ja webhooki allkiri ja taasesitusaken samas runbookis.

Piirangud kaitsevad prepaid, see pole viga

Piirangud piiravad, kui palju aktsepteeritud intent’e tabab rahakotti akna kohta — mitte kui palju TCP katseid balancer tegi. Dokumenteerige aken (võtme, konto, sihtklassi kohta), kood ja Retry-After. Klient, kes loeb 429 kui «proovi kõvemini», jookseb rahanduse vastu. Eksportige piirangu keeldumised edukate deebetite kõrval. Kataloog live peatub ikkagi avaldatud lael; in setup ei ole piiramatu sandbox.

Signaal Engineering Rahakott
429 / Retry-After Backoff, austage akent Null extra deebetit samale intent’ile
5xx / timeout Retry eelarves sama idempotentsusvõtmega Üks deebet, kui esimene katse maandus
4xx ärikeeldumine Ärge retrige pimesi Ilma deebetita või nimetatud keeldumisrida

Backoff ilma teise deebetita: piirangud idempotentsusega

Eksponentsiaalne backoff ilma idempotentsusvõtmeta on see, kuidas värisev võrk saab kaheks OTP-ks. Võti on unikaalne äri-intent’i kohta, mitte TCP katse kohta, ja tagastab sama aktsepteeritud tulemuse selges TTL-is. Kasutaja resend on teine tootetegevus oma piiranguga. Madala saldo stop kehtib: retry ei tohi tühja rahakotti läbi lüüa.

Piloodipiirangud versus tootmine

Piloodivõtmed peavad olema tihedamad: madal maht, kiire nähtavus, odavad vead. Tootmispiirangud on lepingulised koridoridele, mida tegelikult sõidate. Lae tõstmine on konto muutus omanikuga. Koormustestid kuuluvad sandbox-võtmetele; tootmisvõti soakis põletab prepaid. Ärge lubage tootmise QPS-i, kuni kataloogikoridor on in setup.

Võtmed ja webhook-replay samas cutoveris

Send-piirangud ei päästa, kui webhook-tarbija töötleb DLR kaks korda. Cutover: külmutage sandbox-liiklus, väljastage tootmisvõtmed, suunake webhookid tootmistarbijatele, kontrollige allkirju, piirake replay akent, siis üks tõeline intent. Korduv callback kell 02:00 peab olema no-op, mitte teine deebet. Eraldi saladused; ärge kunagi kleepige pileti külge.

Punased lipud

  • «Retry kuni 200» ilma idempotentsusvõtmeta
  • 429 kui pehme 200
  • Tootmisvõti koormustestis või sandbox-webhook URL tootmises
  • Replay aken nädalates või allkirjastamata callbackid «piloodile»
  • Kasutaja resend segatud auto-retry eelarvesse
  • Kliendivead, mis voolavad tooreid upstream koode

Alusta IOSOR-iga

Kirjutage limiidiaken — võtme, konto või sihtklassi kohta — ja Retry-After, mida austate. Sundige 429, taanduge ja proovige sama kavatsust uuesti sama Idempotency-Key’ga. Ledger peab näitama üht deebetit. Vahetage liivakasti võti production-võtme vastu enne, kui tõstate lage.

IOSOR kokkuvõte

Tehke: kohtlege 429 kui pausi Retry-Afteriga, mitte pehmet edu. Siduge iga taandumine algse võtmega, et prepaid näeks üht vastu võetud kavatsust.

Ärge: tõstke production-piire koormustesti võtmel ega taguge 200-ni ilma võtmeta, kuni rahakott paistab lisakasutusena.

Kas see juhend oli kasulik?

Seotud juhendid