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