IOSOR Γνώση

Σειρά συμβάντων έναντι καταχώρισης στο ledger

Τα συμβάντα DLR και MO εκτός σειράς δεν πρέπει να παραβιάζουν τους κανόνες προπληwμένης χρέωσης — η σειρά άφιξης δεν είναι νόμος χρημάτων.

Τα δίκτυα παραδίδουν τα callbacks εκτός σειράς. Ένα καθυστερημένο DLR, έγκαιρο MO ή αλλαγή κατάστασης πριν από τον διακανονισμό δεν πρέπει να εφεύρει μια δεύτερη χρέωση ή να ξαναγράψει μια διακανονισμένη γραμμή. Αυτή η σελίδα είναι το συμβόλαιο σειράς καταχώρισης: οι κανόνες του ledger επιβιώνουν της αναδιάταξης — δεν είναι εισαγωγή σε ID συσχέτισης ούτε δοκίμιο τιμολόγησης MO έναντι MT.

Η σειρά άφιξης δεν είναι νόμος του ledger

Η άφιξη HTTP είναι ένα ατύχημα μεταφοράς. Τα χρήματα καταχωρίζονται υπό κράτηση (hold) → διακανονισμός → ενημέρωση αποτελέσματος — όχι «όποιο callback έφτασε τελευταίο». Η ήπια τιμή USD 1,000/μήνα αντιμετωπίζει την αναδιάταξη ως οικονομικό συμβάν όταν το προϊόν δείχνει επιτυχία ενώ το ledger μετακινείται διπλά. Το USD 20 αποδεικνύει ότι ένα αναγκαστικό καθυστερημένο DLR δεν ανοίγει ποτέ παράλληλη χρέωση.

Πώς μοιάζει η εκτός σειράς κατάσταση

Μοτίβο άφιξης Ασφαλής καταχώριση Μη ασφαλής αντίδραση
DLR πριν τον διακανονισμό Σε εκκρεμότητα; διακανονισμός μία φορά υπό κράτηση Χρέωση μόνο από DLR
Αποτυχία και μετά παράδοση Ενημέρωση αποτελέσματος στη θέση του Δεύτερη χρέωση για αλλαγή
MO πριν συσχέτιση MT Αρχείο εισερχομένων; σύνδεση σε διακανονισμό MT Χρέωση MO ως εξερχόμενου
Κατάσταση μετά από επιστροφή Όχι νέα χρήματα; σχολιασμός Επαναδιακανονισμός απελευθερωμένης πρόθεσης
Δύο τερματικά, μία πρόθεση Μία γραμμή.

Κανόνες καταχώρισης που επιβιώνουν της αναδιάταξης

Δημιουργήστε κλειδιά κράτησης και ταυτότητας πριν από τις παρενέργειες (Συμβόλαιο webhook πριν από την πρώτη αποστολή). Διακανονίστε μία φορά ανά τιμολογήσιμη πρόθεση; τα μεταγενέστερα συμβάντα ενημερώνουν μόνο το αποτέλεσμα. Μην ανοίγετε ποτέ παράλληλη χρέωση για έγκαιρο/καθυστερημένο DLR ή MO. Απορρίψτε ή σταθμεύστε εκτός του υπογεγραμμένου παραθύρου — καμία εφευρεμένη επιτυχία. Εξάγετε συνδέσεις ανά πρόθεση — όχι ανά χρόνο άφιξης.

Η καθυστέρηση είναι φυσιολογική· τα διπλά χρήματα όχι

Η καθυστέρηση του δικτύου είναι φυσιολογική σε κατανεμημένα συστήματα. Το να χρεώνονται χρήματα δύο φορές για μία πρόθεση είναι αποτυχία της λογικής καταχώρισης. Εάν το σύστημά σας δημιουργεί διπλή χρέωση από ένα καθυστερημένο DLR, αντιμετωπίζετε ένα ελαττωματικό οικονομικό συμβάν. Η συμφωνία πρέπει να βασίζεται στο ID πρόθεσης, όχι στη σειρά άφιξης HTTP. Μην αφήνετε την καθυστέρηση του δικτύου να καθορίζει την οικονομική σας κατάσταση.

Λίστα ελέγχου αγοραστή για τη σειρά συμβάντων έναντι καταχώρισης

Επαληθεύστε ότι το σύστημά σας διακρίνει μεταξύ 'άφιξης συμβάντος' και 'διακανονισμού'. Επιβεβαιώστε ότι το κλειδί ταυτότητας δημιουργείται πριν από την πρώτη αποστολή. Ελέγξτε ότι ένα καθυστερημένο DLR δεν ενεργοποιεί νέα χρέωση. Βεβαιωθείτε ότι η αλλαγή κατάστασης (π.χ. από αποτυχία σε επιτυχία) ενημερώνει την αρχική γραμμή αντί να δημιουργεί νέα. Βεβαιωθείτε ότι η συμφωνία σας χρησιμοποιεί το ID πρόθεσης ως κύρια πηγή.

Ξεκινήστε με το IOSOR

Στην κονσόλα: Event order vs ledger posting must reconcile by shared id.. Ονομάστε ιδιοκτήτη και πύλες πριν την επέκταση.

Σχετικά: duplicate webhook no second debit webhook consumer ops at volume.

Σύνοψη IOSOR

Η ορθή διαχείριση της σειράς των συμβάντων απαιτεί αυστηρή πειθαρχία κατά τη βάρδια. Πριν από κάθε εγγραφή στο ledger, ορίστε τον υπεύθυνο (name owner) και ολοκληρώστε τον έλεγχο στην πύλη (pass the gate). Μην παρακάμπτετε ποτέ τις διαδικασίες ελέγχου για χάρη της ταχύτητας. Συγχρονίστε τα δεδομένα σε μορφή UTC και εξάγετε τις αναφορές μέσω του console για πλήρη διαφάνεια.

Ήταν χρήσιμος αυτός ο οδηγός;

Σχετικοί οδηγοί