Sobes.tech
Middle+

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."