Resurssit · 54

Webhookit: käsittelevät toistoja, viiveitä ja palautumista

Muunna vastaanotettu ilmoitus ainutlaatuiseksi, jäljitettäväksi liiketoimintavaikutukseksi, joka on palautettavissa virheen jälkeen.

Päivitetty · 2 min

Mitä tämä opas auttaa saavuttamaan

  • Ilmoitusten todentaminen
  • Kuitin erottaminen käsittelystä
  • Kaksoisvaikutusten estäminen
  • Estettyjen tapahtumien palauttaminen

Pikatarkistus

  • Mitkä tavut on allekirjoitettu?
  • Milloin kuitti on kestävä?
  • Voiko kaksi työntekijää toimia yhdessä?
  • Takaako palveluntarjoaja järjestyksen?
  • Miten kadonnut tapahtuma löydetään?

Vaiheittainen menetelmä

  1. 1

    Lue palveluntarjoajan sopimus

    Tietuetyypit, versio, tilin konteksti, allekirjoitukset, ajoitus ja uudelleenyrityssäännöt. Stripe toteaa, että toimitusjärjestystä ei taata ja kaksoiskappaleita voi esiintyä; älä käytä Stripe-kohtaista viivettä jokaiseen API:in.

    Toimitettava: päivätty palveluntarjoajan sopimus.

  2. 2

    Vahvista ennen vaikutuksia

    Tarkista allekirjoitukset palveluntarjoajan vaatiman kirjaston ja raakarunon avulla. Rajoita hyväksyttyjä kokoja ja tyyppejä. Testaa virheellisiä allekirjoituksia ja odottamatonta tilikontekstia valtuutetussa ympäristössä ilman salaisuuksien kirjaamista.

    Toimitettava: hylkäykset ilman vaikutuksia.

  3. 3

    Pysy ennen kuittaamista.

    Erota pysyvä vastaanotto hitaasta käsittelystä. Jos jono ei voi hyväksyä tapahtumaa, älä ilmoita sitä säilytetyksi. Onnistuminen osoittaa vastaanoton sopimuksesi mukaisesti, ei välttämättä liiketoimintatoiminnon valmistumista.

    Toimitettava: vastaanotettu, käsiteltävä, valmis ja estetty -tilat.

  4. 4

    Valvo idempotenssia.

    Määrittele tapahtuma-avaimet ja liiketoimintavaikutuksen identiteetti. Testaa samanaikaisia ​​toistoja pelkän peräkkäisen toimituksen sijaan. Alustava tarkistus ilman atomirajoituksia tai lukitusta voi antaa kahden työntekijän luoda saman vaikutuksen.

    Toimitettava: todiste vaikutuksen ainutlaatuisuudesta.

  5. 5

    Käsittele viivettä ja epäjärjestystä.

    Älä oleta, että vanha ilmoitus kuvaa nykyistä tilaa. Tarkista lähde, kun sopimus sallii, ja käytä validoituja liiketoimintasiirtymiä. Säilytä tapahtumat, joita ei vielä voida tulkita.

    Toimitettava: siirtymät ja käänteisen järjestyksen testit.

  6. 6

    Täsmäytys ja uudelleentoisto

    Laadi virhejono, joka sisältää omistajan, syyn, yritykset ja sulkemisen. Säilytä kaksoiskappaleiden suojaus uudelleentoiston aikana. Vertaa palveluntarjoajaa ja sovellusta säännöllisesti: onnistunut palautus ei todista, ettei mitään tapahtumaa ole jäänyt huomaamatta.

    Toimitettava: palautusmenettely ja ristiriitaraportti.

Uudelleenkäytettävä laskentataulukko

Täytä valtuutetut havaintosi. Nämä kentät ovat työskentelymalli, eivät havaittuja tuloksia.

KenttäKirjattavat tiedot
TapahtumaPalveluntarjoaja, tili, tunniste ja versio
KuittiVahvistettu allekirjoitus ja kestävä aikaleima
VaikutusLiiketoiminta-avain, tila ja ainutlaatuisuuden todiste
PalautusSyy, yritys, omistaja ja sulkeminen

Kuvitteellinen esimerkki

Havainnollistava tilanne

Kuvitteellinen esimerkki: kaksi työntekijää saa saman vahvistusilmoituksen palautuksen aikana.

Päätös ja odotettu näyttö

Yksilöllinen liiketoimintavaikutusrajoitus ja tapahtumatila sallivat yhden täydennyksen, kun molemmat toimitukset pysyvät jäljitettävissä.

Mekanismien erottaminen

MekanismiTarkoitusVahvistus tai rajoitus
AllekirjoitusVahvista alkuperä sopimuksen mukaisestiEi tee vaikutuksista yksilöllisiä
DeduplikaatioTunnista toistuvat ilmoituksetTarkista myös samanaikaisuus ja liiketoimintavaikutukset
TäsmäytysEtsi puutteita ja erojaNimeä lähde ja ajanjakso

Johdon indikaattorit

IndikaattoriMitä se mittaaEnsimmäinen toimenpide
Jonon ikäKeskeneräisten tapahtumien viivästyminenTarkasta vanhimmat
KaksoisvaikutuksetVirheellisesti toistetut liiketoimintatoiminnotKorjaa atomisuus
Lähteen/sovelluksen aukotPuuttuvat tai poikkeavat tilatTäsmäytys sulkemistodisteilla

Yleisiä virheitä

  • Jäsennys ennen allekirjoitetun rungon varmennusta
  • Kuittaus ennen pysyvää vastaanottoa
  • Tilatun toimituksen olettaminen
  • Kaksoiskappaleiden testaaminen vain peräkkäin

Usein kysytyt kysymykset

Tarkoittaako HTTP-onnistuminen käsittelyn valmistumista?

Se riippuu sopimuksesta. Asynkronisessa käsittelyssä sen pitäisi tarkoittaa pysyvää vastaanottoa, kun taas liiketoiminnan tilaa seurataan erikseen.

Voidaanko olettaa täsmälleen kerran tapahtuva toimitus?

Toistojen ja virheiden suunnittelu todellisen sopimuksen puitteissa, yksilöllisillä vaikutuksilla ja täsmäytyksellä.

Pitäisikö koko runko säilyttää?

Vain tarvittaessa sopivalla käyttöoikeudella ja säilytyksellä. Minimaalisten jälkien tulisi tukea diagnoosia ja palautusta ilman salaisuuksien säilyttämistä.

Viralliset viitteet

Viitteet tukevat menetelmää. Sovita tarkastukset kontekstiisi; ne eivät ole sertifiointia. Alkuperäiset viitteiden otsikot ja lähdeasiakirjat voivat olla toisella kielellä.

Lähteet tarkistettu .