IOSOR Γνώση
Εισερχόμενα webhooks SMS: επαναλήψεις, σειρά συμβάντων, και ιδεμποτεντία κατά τη λήψη
Ένας οδηγός δημιουργίας για ομάδες B2B που χειρίζονται εισερχόμενα SMS: γιατί συμβαίνουν επαναλήψεις, γιατί η σειρά συμβάντων δεν είναι εγγυημένη, και πώς να κάνετε το endpoint λήψης σας ιδεμποτεντικό αντί να διπλασιάζετε συνομιλίες και χειρισμό STOP.
Κάθε χειριστής εισερχόμενων μηνυμάτων τελικά συναντά τις ίδιες τρεις εκπλήξεις: το ίδιο webhook ενεργοποιείται δύο φορές, ένα συμβάν "delivered" φτάνει μετά το "failed" που έπρεπε να αντικαταστήσει, και η απάντηση STOP ενός πελάτη επεξεργάζεται δύο φορές επειδή δύο διακομιστές έλαβαν την ίδια επανάληψη. Τίποτα από αυτά δεν είναι σφάλμα της πλατφόρμας που σας στέλνει το webhook — είναι η φυσιολογική συμπεριφορά οποιουδήποτε συστήματος παράδοσης «τουλάχιστον μία φορά», και το endpoint λήψης σας πρέπει να είναι κατασκευασμένο για αυτή την πραγματικότητα από την πρώτη μέρα.
Γιατί τα webhooks επαναλαμβάνουν καθόλου
Ένας πάροχος webhook δεν μπορεί να γνωρίζει με βεβαιότητα ότι το endpoint σας επεξεργάστηκε μια παράδοση. Ο διακομιστής σας μπορεί να επιστρέψει ένα 200 αφού δεσμευτεί σε μια βάση δεδομένων που στη συνέχεια επαναφέρεται· ένας εξισορροπητής φορτίου μπορεί να χάσει την απάντηση στον δρόμο επιστροφής παρόλο που ο χειριστής σας πέτυχε· μια ανάπτυξη μπορεί να επανεκκινήσει τη διαδικασία σας στη μέση ενός αιτήματος.
Οι τρεις τρόποι αποτυχίας για τους οποίους πρέπει να σχεδιάσετε
| Τρόπος αποτυχίας | Τι συμβαίνει | Τι σπάει αν το αγνοήσετε |
|---|---|---|
| Διπλή παράδοση | Το ίδιο ID συμβάντος φτάνει 2+ φορές | Διπλά μετρημένες απαντήσεις, διπλή επεξεργασία STOP, διπλά νήματα συνομιλίας |
| Συμβάντα εκτός σειράς | Ένα συμβάν με μεταγενέστερη χρονοσφραγίδα φτάνει πριν από ένα προηγούμενο | Μια κατάσταση "delivered" αντικαθίσταται πίσω σε "sent" |
| Μερική/ασαφής αποτυχία |
Ιδεμποτεντία: η μία ιδιότητα που διορθώνει και τις τρεις
Ένα ιδεμποτεντικό endpoint λήψης παράγει την ίδια τελική κατάσταση ανεξάρτητα από το πόσες φορές παραδίδεται το ίδιο συμβάν. Ο μηχανισμός είναι απλός και καλά κατανοητός: κάθε εισερχόμενο συμβάν φέρει ένα μοναδικό ID συμβάντος· πριν την επεξεργασία, ελέγχετε αν έχετε ήδη καταγράψει αυτό το ID· αν ναι, επιστρέφετε επιτυχία αμέσως χωρίς επανεπεξεργασία. 1.
Σειρά συμβάντων: γιατί «η τελευταία εγγραφή κερδίζει» είναι επικίνδυνο
Τα συμβάντα webhook για το ίδιο μήνυμα δεν είναι εγγυημένο ότι θα φτάσουν με τη σειρά που συνέβησαν. Μια επανάληψη ενός προηγούμενου συμβάντος "queued" μπορεί να φτάσει μετά από ένα μεταγενέστερο συμβάν "delivered" λόγω διακύμανσης δικτύου, ουράς στην πλευρά του παρόχου, ή της δικής σας δεξαμενής εργαζομένων που επεξεργάζεται αιτήματα εκτός σειράς.
STOP, HELP, και άλλες εισερχόμενες λέξεις-κλειδιά χρειάζονται την ίδια πειθαρχία
Οι εισερχόμενες λέξεις-κλειδιά κρίσιμες για τη συμμόρφωση αξίζουν την πιο αυστηρή ιδεμποτεντία από όλες. Ένα διπλό STOP δεν θα πρέπει ποτέ να καταγράφει δύο φορές ένα συμβάν εξαίρεσης ή να στέλνει δύο απαντήσεις επιβεβαίωσης. Ένα διπλό HELP δεν θα πρέπει ποτέ να ενεργοποιεί δύο ξεχωριστά μηνύματα πληροφοριών υποστήριξης στον ίδιο αριθμό μέσα στο ίδιο λεπτό.
Ξεκινήστε με την IOSOR
Τραβήξτε τα αρχεία webhook inbound της εβδομάδας και μετρήστε τα ID συμβάντων που ήρθαν πάνω από μία φορά. Αναπαράγετε ένα αντίγραφο και ένα ζεύγος εκτός σειράς (failed, μετά delivered). Ο δέκτης κρατά ένα αποτέλεσμα: μία γραμμή inbox, μία εγγραφή STOP, ένα άγγιγμα πορτοφολιού. Last-write-wins που αναιρεί STOP ρίχνει τη δουλειά. Είναι ιδεμποτένεια στη λήψη και σειρά επαναλήψεων, όχι επικύρωση υπογραφής ούτε κλείδωμα πύλης πριν την ουρά.
- Εισερχόμενη πιlοτική εβδομάδα: Ζωντανοί έλεγχοι MO στο νοικιασμένο DID
- πολιτική λέξεων STOP και HELP
- Διαπιστευτήρια sandbox που δεν καίνε Live debit
Σύνοψη IOSOR
Τα inbound webhook ξαναπροσπαθούν. Η ιδεμποτένεια στη λήψη είναι η μόνη ασφαλής απάντηση· η σειρά δεν είναι υπόσχεση.
Κάντε: κλειδώστε το συμβάν και αγνοήστε τον δίδυμο. Μην: last-write-wins στο STOP ούτε δύο χρεώσεις για το ίδιο συμβάν.
Ήταν χρήσιμος αυτός ο οδηγός;
Σχετικοί οδηγοί
- Ρύθμιση Εφεδρικής Δρομολόγησης SMS για Αναπάντητες Εισερχόμενες Κλήσεις
Μάθετε πώς να ρυθμίζετε αυτοματοποιημένα triggers SMS για αναπάντητες εισερχόμενες φωνητικές κλήσεις και σήματα κατειλημμένου στην κονσόλα white-label CPaaS της IOSOR.
- Εξισορρόπηση καθυστέρησης δικτύου σε εισερχόμενα webhooks
Μάθετε πώς να ρυθμίζετε τους κανόνες αποθήκευσης του IOSOR για την προστασία των webhooks από καθυστερήσεις δικτύου και σφάλματα χρονικού ορίου.
- Συγχρονισμός λέξεων-κλειδιών εξαίρεσης εισερχομένων σε περιβάλλον πολλαπλών μισθωτών
Μάθετε τον συγχρονισμό εξαίρεσης πολλαπλών μισθωτών στο IOSOR. Δείτε πώς οι λέξεις STOP διαχειρίζονται τους καθολικούς περιορισμούς απομονώνοντας τους υπολογαριασμούς.