IOSOR Vedomosti
Prichádzajúce SMS webhooky: opakovania, poradie udalostí a idempotencia pri prijatí
Sprievodca vývojom pre B2B tímy spracúvajúce prichádzajúce SMS: prečo dochádza k opakovaniam, prečo poradie udalostí nie je zaručené, a ako urobiť váš prijímací endpoint idempotentným namiesto duplikovania konverzácií a spracovania STOP.
Každý spracovateľ prichádzajúcich správ nakoniec narazí na rovnaké tri prekvapenia: rovnaký webhook sa spustí dvakrát, udalosť "delivered" príde po "failed", ktorú mala nahradiť, a odpoveď STOP od zákazníka sa spracuje dvakrát, pretože dva servery prijali rovnaké opakovanie. Nič z toho nie je chyba platformy, ktorá vám posiela webhook — je to normálne správanie akéhokoľvek systému doručovania "aspoň raz", a váš prijímací endpoint musí byť pre túto realitu postavený od prvého dňa.
IOSOR doručuje prichádzajúce SMS, kľúčové slová STOP/HELP a udalosti doručenia ako white-label predplatené webhooky — správanie opakovania a poradia opísané nižšie je to, čo by mala predpokladať akákoľvek serióznu B2B integrácia bez ohľadu na to, aká platforma za ňou stojí.
Prečo webhooky vôbec opakujú
Poskytovateľ webhooku nemôže s istotou vedieť, či váš endpoint spracoval doručenie. Váš server môže vrátiť 200 po commite do databázy, ktorá je potom vrátená späť; load balancer môže stratiť odpoveď na spiatočnej ceste, aj keď váš handler uspel; nasadenie môže reštartovať váš proces uprostred požiadavky.
Tri režimy zlyhania, pre ktoré musíte navrhovať
| Režim zlyhania | Čo sa stane | Čo sa pokazí, ak to ignorujete |
|---|---|---|
| Duplicitné doručenie | Rovnaké ID udalosti príde 2+ krát | Dvakrát počítané odpovede, duplicitné spracovanie STOP, duplicitné vlákna konverzácie |
| Udalosti mimo poradia | Udalosť s neskoršou časovou pečiatkou príde pred skoršou | Stav "delivered" je prepísaný späť na "sent" |
| Čiastočné/nejednoznačné |
Idempotencia: jedna vlastnosť, ktorá rieši všetky tri
Idempotentný prijímací endpoint produkuje rovnaký konečný stav bez ohľadu na to, koľkokrát je rovnaká udalosť doručená. Mechanizmus je jednoduchý a dobre pochopený: každá prichádzajúca udalosť nesie jedinečné ID udalosti; pred spracovaním kontrolujete, či ste toto ID už zaznamenali; ak áno, okamžite vrátite úspech bez opätovného spracovania. 1.
Poradie udalostí: prečo je "posledný zápis vyhráva" nebezpečné
Webhookové udalosti pre rovnakú správu nie sú zaručene doručené v poradí, v ktorom sa odohrali. Opakovanie skoršej udalosti "queued" môže prísť po neskoršej udalosti "delivered" kvôli sieťovému jitteru, frontovaniu na strane poskytovateľa, alebo vašej vlastnej skupine workerov spracúvajúcej požiadavky mimo poradia.
STOP, HELP a ďalšie prichádzajúce kľúčové slová vyžadujú rovnakú disciplínu
Prichádzajúce kľúčové slová kritické pre súlad si zaslúžia najprísnejšiu idempotenciu zo všetkých. Duplicitný STOP by nikdy nemal dvakrát zaznamenať udalosť odhlásenia ani odoslať dve potvrdzujúce odpovede. Duplicitný HELP by nikdy nemal spustiť dve samostatné podporné informačné správy na rovnaké číslo v rovnakej minúte.
Začnite s IOSOR
Súvisiace: slučky inbound auto-odpovedí · Vyrovnávacia pamäť pre prichádzajúce webhooky proti výkyvom latencie operátorov · rezervácia predplateného zostatku pred prvým odpísaním.
Zhrnutie IOSOR
Inbound webhooky robia retry. Idempotencia na príjme je jediná bezpečná odpoveď; poradie nie je sľub.
Robte: kľúčujte udalosť a ignorujte dvojča. Nerobte: last-write-wins na STOP ani dve strhnutia za tú istú udalosť.
Pomohol tento sprievodca?
Súvisiace návody
- Konfigurácia záložného smerovania zmeškaných hovorov na SMS
Naučte sa konfigurovať automatické spúšťače SMS pre zmeškané prichádzajúce hlasové hovory a obsadené tóny v konzole IOSOR CPaaS.
- Vyrovnávacia pamäť pre prichádzajúce webhooky proti výkyvom latencie operátorov
Naučte sa nakonfigurovať pravidlá ukladania do vyrovnávacej pamäte IOSOR na ochranu webhookov pred oneskoreniami operátorov a chybami vypršania časového limitu.
- Synchronizácia prichádzajúcich kľúčových slov pre odhlásenie naprieč multi-tenant účtami
Zvládnite multi-tenant synchronizáciu odhlásení v systéme IOSOR. Zistite, ako prichádzajúce STOP kľúčové slová riadia globálne blokovania a zároveň izolujú podúčty.