IOSOR Žinios

API limitai nuo piloto iki gamybos: backoff be prepaid deginimo

Piloto ir gamybos limitai, eksponentinis backoff, idempotencija, sandbox versus gamybos raktai ir ribotas webhook replay langas — kad retry neištuštintų prepaid piniginės.

429 nekviečia kalti send API, kol kas nors nepraeina. Ant prepaid retrystorm yra piniginės įvykis: dvigubas OTP, sukrauti įspėjimai, nesutapatintos ledger eilutės. Limitai egzistuoja, kad produktas, engineering ir finansai dalytųsi vienu lubomis. Nuo piloto iki gamybos nėra «nuimti cap» — sutartiniai limitai, backoff gerbiantis idempotenciją, atskiri sandbox ir gamybos raktai, ir webhook replay langas, kuris nedvigubai debituoja. Žr. idempotentiškumas, pakartojimai ir pinigai.

IOSOR yra prepaid white-label: autentifikuoti kvietimai, koreliuojami debetai, klientui saugios klaidos, kurios niekada neišlieja svetimo prekės ženklo krovinio. live / in setup nepriklauso nuo to, kaip kietai retrinate — koridorius in setup netampa Live, nes klientas loopino. Prie USD 1,000+ mėnesinio naudojimo retry biudžetai ir raktų cutover eina į komercinę peržiūrą. Laikykite perėjimas iš sandbox į produkciją ir webhook parašas ir pakartojimo langas tame pačiame runbook.

Limitai saugo prepaid, tai ne klaida

Limitai riboja, kiek priimtų intent pataiko į piniginę per langą — ne kiek TCP bandymų padarė balancer. Dokumentuokite langą (pagal raktą, sąskaitą, paskirties klasę), kodą ir Retry-After. Klientas, skaitantis 429 kaip «bandyk stipriau», bėga prieš finansus. Eksportuokite limito atmetimus šalia sėkmingų debetų. Katalogas live vis tiek sustoja ant paskelbtų lubų; in setup nėra neribotas sandbox.

Signalas Engineering Piniginė
429 / Retry-After Backoff, gerbkite langą Nulis extra debeto tam pačiam intent
5xx / timeout Retry biudžete su tuo pačiu idempotencijos raktu Vienas debetas, jei pirmas bandymas nusileido
4xx verslo atmetimas Neretrinkite aklai Be debeto, arba įvardyta atmetimo eilutė

Backoff be antro debeto: limitai su idempotencija

Eksponentinis backoff be idempotencijos rakto yra kaip drebančios tinklas tampa dviem OTP. Raktas unikalus pagal verslo intent, ne pagal TCP bandymą, ir grąžina tą patį priimtą rezultatą aiškiame TTL. Vartotojo resend yra kita produkto veiksmas su savo limitu. Žemo likučio stopas galioja: retry neturi pramušti tuščios piniginės.

Piloto limitai versus gamyba

Piloto raktai turi būti griežtesni: mažas tūris, greitas matomumas, pigios klaidos. Gamybos limitai sutartiniai koridoriams, kuriuos tikrai sukate. Lubų pakėlimas yra sąskaitos keitimas su savininku. Apkrovos testai priklauso sandbox raktams; gamybos raktas soak degina prepaid. Nežadėkite gamybos QPS, kol katalogo koridorius in setup.

Raktai ir webhook replay tame pačiame cutover

Send limitai neišgelbės, jei webhook vartotojas apdoroja DLR du kartus. Cutover: užšaldykite sandbox srautą, išduokite gamybos raktus, nukreipkite webhook į gamybos vartotojus, patikrinkite parašus, apribokite replay langą, tada vienas tikras intent. Pakartotas callback 02:00 turi būti no-op, ne antras debetas. Atskiros paslaptys; niekada neklijuokite į bilietą.

Raudonos vėliavos

  • «Retry iki 200» be idempotencijos rakto
  • 429 kaip minkštas 200
  • Gamybos raktas apkrovos teste arba sandbox webhook URL gamyboje
  • Replay langas savaitėmis, arba nepasirašyti callback «pilotui»
  • Vartotojo resend sumaišytas su auto-retry biudžetu
  • Kliento klaidos, išliejančios žalias upstream kodus

Pradžia su IOSOR

Užrašykite limito langą — raktui, paskyrai ar paskirties klasei — ir Retry-After, kurį gerbsite. Priverskite 429, atsitraukite ir pakartokite tą patį ketinimą tuo pačiu Idempotency-Key. Ledger turi rodyti vieną debetą. Pakeiskite smėlio dėžės raktą production, kol kelsite lubas.

IOSOR santrauka

Darykite: laikykite 429 pauze su Retry-After, ne minkšta sėkme.

Ar šis vadovas buvo naudingas?

Susiję vadovai