5. Maksājumu uzticamība: "Kā tika atrisināts idempotences jautājums gRPC?"
Intervijas mērķis: Maksājumi — visbīstamākā joma dublēšanai (Double Spending).
Iespējamais jautājums:
"Maksājuma pieprasījums tika nosūtīts caur gRPC, bet neizdevās laika ierobežojuma dēļ (DEADLINE_EXCEEDED). Vai nauda tika atskaitīta — nav zināms. Ko dara maksājuma modulis?"
Kā atbildēt:
"Finanšu transakciju kontekstā, jebkuram atkārtotam pieprasījumam jābūt ar Idempotency Key:
1. gRPC pieprasījuma metadatos (metadata=((‘x-idempotency-key’, key_uuid),)) mēs vienmēr pārraidījām unikālu transakcijas atslēgu.
2. Saņemot DEADLINE_EXCEEDED, klients droši var atkārtot ar to pašu atslēgu.
3. Pirkšanas pakalpojums pārbaudīja šīs atslēgas esamību savā datu bāzē / Redis un vai nu atgrieza jau apstrādātas transakcijas statusu, vai pirmo reizi to apstrādāja."