Sobes.tech
Middle+

5. Pouzdanost plaćanja: "Kako je rešen problem idempotentnosti u gRPC?" Cilj intervjuera: Plaćanja — najopasnije područje za duplikate (Double Spending). Moguće pitanje: "Zahtev za plaćanje je prošao kroz gRPC, ali je neuspešan zbog timeout-a (DEADLINE_EXCEEDED). Da li su novac oduzeli — nepoznato. Šta radi modul za plaćanja?" Kako odgovoriti: "U finansijskom transakcionom kontekstu, svaki ponovljeni zahtev mora imati Idempotency Key: 1. U metapodacima gRPC zahteva (metadata=((‘x-idempotency-key’, key_uuid),)) smo uvek prenosili jedinstveni transakcioni ključ. 2. Kada se primi DEADLINE_EXCEEDED, klijent može sigurno pokušati ponovo sa istim ključem. 3. Servis za nabavku proverava prisustvo ovog ključa u svojoj bazi podataka / Redis-u i ili vraća status već obrađene transakcije ili je obrađuje prvi put."