5. Spoľahlivosť platieb: "Ako bol vyriešený problém s idempotenciou v gRPC?"
Cieľom interviewéra: Platby — najnebezpečnejšia oblasť pre duplikáty (Double Spending).
Možná otázka:
"Žiadosť o platbu prešla cez gRPC, ale zlyhala kvôli timeoutu (DEADLINE_EXCEEDED). Boli peniaze odpočítané — neznáme. Čo robí modul platby?"
Ako odpovedať:
"V kontexte finančnej transakcie musí každá opakovaná žiadosť mať Idempotency Key:
1. V metadátach gRPC požiadavky (metadata=((‘x-idempotency-key’, key_uuid),)) sme vždy prenášali unikátny transakčný kľúč.
2. Pri prijatí DEADLINE_EXCEEDED mohol klient bezpečne skúsiť znova s rovnakým kľúčom.
3. Služba akvizície kontrolovala prítomnosť tohto kľúča vo svojej databáze / Redis a buď vrátila stav už spracovanej transakcie, alebo ju spracovala prvýkrát."