Sobes.tech
Middle+

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