Sobes.tech
Middle+

5. გადახდის სანდოობა: "როგორ გადაწყდა idempotency-ის პრობლემა gRPC-ში?" ინტერვიუს მიზანია: გადახდები — ყველაზე საშიში სფეროა დუბლიკატებისთვის (Double Spending). შესაძლო კითხვა: "გადახდის მოთხოვნა გავიდა gRPC-ით, მაგრამ ვერ მოხერხდა დროის ზღვარის გამო (DEADLINE_EXCEEDED). თანხა გამოიწერა — უცნობია. რა აკეთებს გადახდის მოდული?" როგორ უპასუხოთ: "ფინანსური ტრანზაქციის კონტექსტში, ნებისმიერი განმეორებითი მოთხოვნა უნდა ჰქონდეს Idempotency Key: 1. gRPC-ის მოთხოვნის მეტადატაში (metadata=((‘x-idempotency-key’, key_uuid),)) ჩვენ ყოველთვის გადმოვცემდით უნიკალურ ტრანზაქციის გასაღებს. 2. DEADLINE_EXCEEDED-ის მიღებისას, მომხმარებელი უსაფრთხოდ ისევ იგივე გასაღებით სცადა. 3. შეძენის სერვისი, ამ გასაღების არსებობას თავისი მონაცემთა ბაზაში / Redis-ში ამოწმებდა და ან უკვე დამუშავებული ტრანზაქციის სტატუსს აბრუნებდა ან პირველად დამუშავებდა."