5. Αξιοπιστία πληρωμών: "Πώς λύθηκε το ζήτημα της ιδιομορφίας στο gRPC;"
Στόχος του συνεντευκτή: Οι πληρωμές — η πιο επικίνδυνη περιοχή για διπλότυπα (Double Spending).
Πιθανή ερώτηση:
"Το αίτημα πληρωμής πέρασε μέσω gRPC αλλά απέτυχε λόγω χρονικού ορίου (DEADLINE_EXCEEDED). Τα χρήματα αφαιρέθηκαν — άγνωστο. Τι κάνει το module πληρωμών;"
Πώς να απαντήσετε:
"Σε ένα χρηματοοικονομικό πλαίσιο, κάθε επαναλαμβανόμενο αίτημα πρέπει να έχει ένα Κλειδί Ιδιομορφίας:
1. Στα μεταδεδομένα του αιτήματος gRPC (metadata=((‘x-idempotency-key’, key_uuid),)) πάντα μεταδίδαμε ένα μοναδικό κλειδί συναλλαγής.
2. Όταν λαμβάνεται DEADLINE_EXCEEDED, ο πελάτης μπορεί με ασφάλεια να επαναλάβει με το ίδιο κλειδί.
3. Η υπηρεσία απόκτησης ελέγχει την παρουσία αυτού του κλειδιού στη βάση δεδομένων / Redis και είτε επιστρέφει την κατάσταση της ήδη επεξεργασμένης συναλλαγής είτε την επεξεργάζεται για πρώτη φορά."