Σε αυτή τη σελίδα
Φανταστείτε μια εργασία σε πρόγραμμα περιήγησης με εκατό βήματα. Ας υποθέσουμε ότι κάθε βήμα πετυχαίνει στο 99% των περιπτώσεων, ανεξάρτητα από τα υπόλοιπα. Η πιθανότητα να πετύχουν όλα τα βήματα είναι 0.99^100, δηλαδή περίπου 36,6%.
Το ενενήντα εννέα τοις εκατό ακούγεται εξαιρετικό. Το τριάντα έξι τοις εκατό όχι.
Η συζήτηση της πηγής για εργασίες περιήγησης ως συναλλαγές χρησιμοποιεί τον υπολογισμό για ένα συγκεκριμένο σημείο: ο πελάτης λαμβάνει αξία όταν ολοκληρώνεται η εργασία, ενώ το κόστος και ο κίνδυνος σφάλματος συσσωρεύονται σε κάθε βήμα. Είναι μαθηματικά με μια παραδοχή, όχι δημοσιευμένο ποσοστό επιτυχίας για κάποιον πράκτορα περιήγησης ή συγχρονισμό της Tajo. Τα πραγματικά σφάλματα μπορεί να εξαρτώνται μεταξύ τους. Μία ληγμένη σύνδεση μπορεί να ακυρώσει πολλές επόμενες ενέργειες ταυτόχρονα.
Επομένως, η χρήσιμη ερώτηση δεν είναι «Πόσο ακριβές ήταν το τελευταίο κλικ του μοντέλου;» Είναι «Προέκυψε η κατάσταση που ζήτησε ο χρήστης;»
Η μονάδα που μετρά είναι ολόκληρη η συναλλαγή
Φανταστείτε έναν πράκτορα που ανοίγει μια πύλη ασφάλισης, βρίσκει ένα έγγραφο, το κατεβάζει και ελέγχει ότι ανήκει στον σωστό λογαριασμό. Μπορεί να πλοηγηθεί σωστά σε 99 οθόνες και να κατεβάσει λάθος αρχείο στην εκατοστή. Ένα αρχείο καταγραφής γεμάτο επιτυχημένα κλικ δεν διορθώνει το αποτέλεσμα.
Η ίδια διάκριση ισχύει για μια ενσωμάτωση. Ένας πράκτορας μπορεί να βρει ένα API, να προτείνει μια αντιστοίχιση πεδίων και να αποθηκεύσει ένα προσχέδιο. Καμία από αυτές τις ενέργειες δεν σημαίνει ότι μια επαφή στο σύστημα προορισμού έχει πλέον τη σωστή κατάσταση συναίνεσης. Η εργασία ολοκληρώνεται μόνο όταν εκτελεστεί η εγκεκριμένη λειτουργία και ελεγχθεί η σχετική τελική συνθήκη.
Αυτή είναι η διαφορά ανάμεσα στη δραστηριότητα και την ολοκλήρωση. Η δραστηριότητα μετριέται εύκολα. Η ολοκλήρωση χρειάζεται ορισμό.
Για ένα αρχείο που κατεβαίνει, ο ορισμός μπορεί να είναι ένα έγγραφο με αριθμό λογαριασμού που ταιριάζει στο αίτημα. Για έναν συγχρονισμό επαφών, μπορεί να είναι μια εγγραφή προορισμού με σωστό αναγνωριστικό, πεδία και επιτρεπτή κατάσταση για μηνύματα μάρκετινγκ. Ο έλεγχος πρέπει να εξετάζει αυτό που είχε σημασία για τον χρήστη. Μια πράσινη απάντηση από την προηγούμενη κλήση αποδεικνύει ότι η κλήση επέστρεψε. Δεν αποδεικνύει απαραίτητα ότι ο προορισμός άλλαξε όπως προβλεπόταν.
Ο οδηγός της Tajo για τη σύνδεση επιχειρηματικών εργαλείων ξεκινά από τη ροή εργασίας και την πηγή αλήθειας για κάθε αντικείμενο δεδομένων. Αυτές οι επιλογές δίνουν νόημα στον τελικό έλεγχο. Αν δύο συστήματα διεκδικούν το ίδιο πεδίο, ακόμη και μια άψογα εκτελεσμένη εγγραφή μπορεί να αφήσει λάθος κατάσταση μακροπρόθεσμα.
Το κόστος μιας ακόμη απόφασης
Με την ίδια υποθετική παραδοχή του 99%, δέκα ανεξάρτητες αποφάσεις δίνουν περίπου 90,4% επιτυχία για όλη την αλυσίδα. Πενήντα δίνουν περίπου 60,5%. Εκατό δίνουν περίπου 36,6%.
Πιθανότητα επιτυχίας όλης της αλυσίδας (%)
Αριθμός ανεξάρτητων βημάτων
- Υποθετική επιτυχία 99% ανά βήμα
Δείτε τις υπολογισμένες τιμές
| Βήματα | Επιτυχία όλης της αλυσίδας (%) |
|---|---|
| 0 | 100,0 |
| 10 | 90,4 |
| 25 | 77,8 |
| 50 | 60,5 |
| 75 | 47,1 |
| 100 | 36,6 |
Η καμπύλη πέφτει απότομα επειδή ο πολλαπλασιασμός δεν ενδιαφέρεται για έναν καλό μέσο όρο. Κάθε επιπλέον απόφαση πρέπει να αξίζει τη θέση της.
Αυτό δεν σημαίνει ότι όλες οι κλήσεις API πρέπει να γίνουν μία τεράστια λειτουργία. Ορισμένες ακολουθούν σταθερούς κανόνες: ανάκτηση σελίδας με γνωστό δείκτη, σύγκριση αναγνωριστικού ή εγγραφή πεδίου βάσει εγκεκριμένης αντιστοίχισης. Ένα μοντέλο δεν χρειάζεται να ξαναπαίρνει αυτές τις αποφάσεις για κάθε εγγραφή. Άλλες κλήσεις έχουν πραγματική ασάφεια: νέο πεδίο προμηθευτή, αλλαγμένο μήνυμα σφάλματος ή αίτημα χωρίς σαφή υπεύθυνο. Εκεί μπορεί να απαιτείται κρίση.
Ο πρακτικός διαχωρισμός είναι να χρησιμοποιείται η κρίση για τον σχεδιασμό ή τη διόρθωση ενός κανόνα και έπειτα ο συνηθισμένος κώδικας να εφαρμόζει τον σταθερό κανόνα. Το Reverse ETL είναι χρήσιμο παράδειγμα επαναλαμβανόμενης μεταφοράς δεδομένων: η ροή δεδομένων, όχι μια συνομιλία, πρέπει να εκτελεί τη συνήθη ενέργεια για κάθε γραμμή. Ένας πράκτορας μπορεί ακόμη να βοηθήσει να αποφασιστεί τι πρέπει να κάνει η ροή.
Πρόκειται για όριο, όχι για σύνθημα. Αν ένας προμηθευτής αλλάξει τη σημασία ενός πεδίου, ένας σταθερός κανόνας μπορεί να επαναλαμβάνει τέλεια τη λάθος ενέργεια. Το σύστημα πρέπει να εντοπίζει ότι άλλαξαν οι παραδοχές του και να επιστρέφει την περίπτωση για επανεξέταση.
Γιατί ένα μεγάλο εργαλείο δεν είναι η απάντηση
Μια εύλογη αντίρρηση είναι: «Αν οι μεγάλες αλυσίδες αποτυγχάνουν, βάλτε όλη την εργασία πίσω από μία κλήση εργαλείου». Αυτό βοηθά όταν το εργαλείο εκτελεί μια σαφώς ορισμένη συναλλαγή με ελέγξιμο αποτέλεσμα. Αποτυγχάνει όταν απλώς κρύβει μια μεγάλη και αβέβαιη διαδικασία.
Ας υποθέσουμε ότι η syncCustomer() επιστρέφει success: true αφού στείλει μια ενημέρωση. Αν ο προορισμός επεξεργάζεται τις ενημερώσεις αργότερα, η κλήση δεν μπορεί ακόμη να αποδείξει την τελική κατάσταση της επαφής. Το εργαλείο μείωσε τα ορατά βήματα. Δεν μείωσε την αβεβαιότητα.
Μια καλύτερη διεπαφή εμφανίζει τις καταστάσεις που έχουν σημασία: παραλήφθηκε, εφαρμόστηκε, ελέγχθηκε ή απέτυχε. Οι λέξεις πρέπει να αντιστοιχούν σε αποδείξεις. Μια ενημέρωση που παραλήφθηκε μπορεί να αρκεί για προεπισκόπηση με μικρές συνέπειες. Μια αλλαγή κοινού καμπάνιας ή συναίνεσης αξίζει έλεγχο στον προορισμό πριν χαρακτηριστεί ολοκληρωμένη.
Σε αυτή την προτεινόμενη προβολή Tajo, το αποδεκτό αίτημα και η εφαρμοσμένη αλλαγή διαχωρίζονται από την επαληθευμένη κατάσταση στον προορισμό. Ο τελικός έλεγχος εκκρεμεί. Το επόμενο βήμα έχει σαφή σκοπό: να ελεγχθεί τι αποθήκευσε ο προορισμός. Μια ακόμη επιτυχημένη κλήση εργαλείου δεν θα απαντούσε στο αρχικό ερώτημα.
Μια ολοκληρωμένη εγγραφή χρειάζεται ακόμη αποδείξεις
Ολοκληρώθηκε ο συγχρονισμός πελατών;
Η εγγραφή εφαρμόστηκε. Η επαλήθευση εκκρεμεί.
Η κατάσταση στον προορισμό δεν έχει ελεγχθεί ακόμη.
Δραστηριότητα συγχρονισμού
- Το αίτημα έγινε δεκτό
- Η αλλαγή εφαρμόστηκε
- Εκκρεμεί έλεγχος προορισμού
Ενδεικτική εκτέλεση · 14:32 UTC
Τι γνωρίζουμε
- Απάντηση παρόχου
- Έγινε δεκτό
- Αποτέλεσμα εγγραφής
- Εφαρμόστηκε
- Επανάγνωση από τον προορισμό
- Σε εκκρεμότητα
Μια επιτυχημένη κλήση δεν αποδεικνύει την τελική κατάσταση.
Προτεινόμενη διάταξη βασισμένη στη ροή δραστηριότητας του Tajo. Η απεικόνιση προσθέτει κατάσταση επαλήθευσης, χωρίς να ισχυρίζεται ότι η επανάγνωση από τον προορισμό έχει ήδη υλοποιηθεί.
Αυτό αλλάζει και τη μέτρηση. Καταγράψτε τον αριθμό προσπαθειών αν βοηθά στη διάγνωση κόστους. Καταγράψτε ενδιάμεσα σφάλματα αν δείχνουν προβληματικό βήμα. Κρίνετε όμως τη ροή από τις επαληθευμένες ολοκληρωμένες συναλλαγές και γράψτε τη μέθοδο ελέγχου δίπλα στον αριθμό. Μια ομάδα που αναφέρει «το 99% των κλήσεων πέτυχε» δεν έχει απαντήσει αν οι πελάτες ολοκλήρωσαν τη δουλειά τους.
Η εξήγηση των διακομιστών MCP δείχνει πώς τα εργαλεία επιτρέπουν σε έναν βοηθό να καλέσει άλλο σύστημα. Η πρόσβαση σε εργαλείο είναι μόνο η αρχή. Η συμφωνία αφορά την κατάσταση που μένει πίσω.
Εκατό σωστά κλικ μπορεί να μην αφήσουν κανένα αποτέλεσμα. Μετρήστε το αποτέλεσμα.
Έχετε Ερωτήσεις; Έχουμε Απαντήσεις
Γιατί αποτυγχάνει μια μεγάλη ροή εργασίας όταν τα επιμέρους βήματα είναι συνήθως σωστά;
Αν κάθε βήμα πετυχαίνει ανεξάρτητα με πιθανότητα p, μια αλυσίδα n βημάτων πετυχαίνει με πιθανότητα p υψωμένη στη δύναμη n. Με υποθετικό ποσοστό 99% ανά βήμα, εκατό βήματα ολοκληρώνονται περίπου στο 36,6% των περιπτώσεων. Τα πραγματικά σφάλματα μπορεί να συνδέονται μεταξύ τους, άρα πρόκειται για παράδειγμα και όχι για μετρημένο ποσοστό επιτυχίας πρακτόρων.
Λιγότερες κλήσεις εργαλείων εγγυώνται μεγαλύτερη αξιοπιστία;
Όχι. Βοηθούν μόνο αν η ενιαία λειτουργία εξακολουθεί να προσφέρει σωστούς ελέγχους και σημεία ανάκαμψης. Μία αδιαφανής κλήση μπορεί να κρύψει μια αποτυχημένη εγγραφή όπως μια μεγάλη αλυσίδα μπορεί να χάσει τη συνέχεια.
Τι πρέπει να μετρά μια ομάδα για μια ροή εργασίας πράκτορα;
Μετρήστε την επαληθευμένη ολοκλήρωση της εργασίας του χρήστη, όχι μόνο επιτυχημένες κλήσεις του μοντέλου. Ορίστε το αρχείο ή την κατάσταση του συστήματος προορισμού που αποδεικνύει την ολοκλήρωση και καταγράψτε πόσο συχνά υπάρχει μετά από ολόκληρη τη ροή.