IOSOR Kennis

Inkomende SMS-webhooks: opnieuw proberen, gebeurtenisvolgorde en idempotentie bij ontvangst

Een bouwgids voor B2B-teams die inkomende SMS afhandelen: waarom herhalingen gebeuren, waarom de volgorde van gebeurtenissen niet gegarandeerd is, en hoe u uw ontvangst-endpoint idempotent maakt in plaats van gesprekken en STOP-verwerking te dupliceren.

Bij het verwerken van inkomende SMS-webhooks krijgt elke ontwikkelaar te maken met dubbele aanroepen en berichten die in de verkeerde volgorde arriveren. Dit is geen fout in het systeem, maar het standaardgedrag van 'at-least-once' delivery waarbij uw endpoint zelf verantwoordelijk is voor het filteren van duplicaten en het bewaken van de juiste statusvolgorde. Een robuuste B2B-integratie moet daarom vanaf het begin worden ontworpen met strikte idempotentie en logica voor gebeurtenisvolgorde om foutieve verwerking van klantacties zoals STOP-verzoeken te voorkomen.

Waarom webhooks überhaupt opnieuw proberen

Een webhookprovider kan niet met zekerheid weten of uw endpoint een aflevering heeft verwerkt. Uw server kan een 200 retourneren nadat een databasetransactie is vastgelegd die vervolgens wordt teruggedraaid; een load balancer kan de reactie op de terugweg verliezen, ook al is uw handler geslaagd; een deployment kan uw proces halverwege een verzoek herstarten.

De drie faalmodi waarvoor u moet ontwerpen

Faalmodus Wat er gebeurt Wat er breekt als u het negeert
Dubbele aflevering Hetzelfde gebeurtenis-ID komt 2+ keer aan Dubbel geteld antwoorden, dubbele STOP-verwerking, dubbele gespreksdraden
Gebeurtenissen buiten volgorde Een later gedateerde gebeurtenis komt aan vóór een eerdere Een "delivered"-status wordt teruggeschreven naar "sent"
Gedeeltelijke/dubbelzinnige fout Uw handler verwerkte de gebeurtenis, maar de bevestiging ging verloren platforms probeert iets opnieuw dat u al gedaan heeft .

Idempotentie: de ene eigenschap die alle drie oplost

Een idempotent ontvangst-endpoint produceert dezelfde eindtoestand, ongeacht hoe vaak dezelfde gebeurtenis wordt afgeleverd. Het mechanisme is eenvoudig en goed begrepen: elke inkomende gebeurtenis draagt een uniek gebeurtenis-ID; vóór verwerking controleert u of u dat ID al heeft geregistreerd; zo ja, dan retourneert u onmiddellijk succes zonder opnieuw te verwerken. 1.

Gebeurtenisvolgorde: waarom "laatste schrijfactie wint" gevaarlijk is

Webhookgebeurtenissen voor hetzelfde bericht komen niet gegarandeerd aan in de volgorde waarin ze plaatsvonden. Een herhaling van een eerdere "queued"-gebeurtenis kan aankomen na een latere "delivered"-gebeurtenis vanwege netwerkjitter, wachtrijen aan providerzijde, of uw eigen workerpool die verzoeken buiten volgorde verwerkt. Als uw handler simpelweg de statuskolom van het bericht overschrijft met wat er net binnenkwam, kan een te laat aangekomen verouderde gebeurtenis een afgeleverd bericht stilletjes terugzetten naar een eerdere toestand.

STOP, HELP en andere inkomende trefwoorden hebben dezelfde discipline nodig

Compliance-kritieke inkomende trefwoorden verdienen de strengste idempotentie van allemaal. Een gedupliceerde STOP mag nooit tweemaal een opt-outgebeurtenis loggen of twee bevestigingsantwoorden sturen. Een gedupliceerde HELP mag nooit twee afzonderlijke supportinfoberichten naar hetzelfde nummer binnen dezelfde minuut activeren.

Begin met IOSOR

In de console: Inbound SMS webhook retries stay idempotent; no double MO side-effects.. Noem eigenaar en gates vóór opschalen.

Gerelateerd: inbound autoreply loop wallet drain inbound carrier latency webhook time.

IOSOR-kern

Ops-discipline voor de dienst—geen brochure.

Doe: name owner + gate. Niet: skip the gate.

Was deze gids nuttig?

Gerelateerde gidsen