5. Mokėjimų patikimumas: "Kaip buvo išspręsta idempotentumo problema gRPC?"
Interviu tikslas: Mokėjimai — pavojingiausia sritis dubliavimui (Double Spending).
Galimas klausimas:
"Mokėjimo užklausa praėjo per gRPC, bet nepavyko dėl laiko limito (DEADLINE_EXCEEDED). Ar pinigai buvo nuskaičiuoti — nežinoma. Ką daro mokėjimo modulis?"
Kaip atsakyti:
"Finansinio sandorio kontekste, bet kuri pakartotinė užklausa turi turėti Idempotency Key:
1. gRPC užklausos metaduomenyse (metadata=((‘x-idempotency-key’, key_uuid),)) visada perdavėme unikalų sandorio raktą.
2. Gavus DEADLINE_EXCEEDED, klientas saugiai galėjo pakartoti su tuo pačiu raktu.
3. Pirkimo paslauga tikrino šio rakto buvimą savo duomenų bazėje / Redis ir arba grąžindavo jau apdorotos operacijos būseną, arba ją pirmą kartą apdorodavo."