5. Maksete usaldusväärsus: "Kuidas lahendati idempotentsuse probleem gRPC-s?"
Intervjueerija eesmärk: Maksmised — kõige ohtlikum valdkond duplikaatide jaoks (Double Spending).
Võimalik küsimus:
"Maksetaotlus läks läbi gRPC, kuid ebaõnnestus ajapiirangu tõttu (DEADLINE_EXCEEDED). Kas raha võeti maha — teadmata. Mida teeb maksemodul?"
Kuidas vastata:
"Finantstehingu kontekstis peab iga korduv taotlus omama Idempotency Key:
1. gRPC taotluse metaandmetes (metadata=((‘x-idempotency-key’, key_uuid),)) edastasime alati unikaalse tehingu võtme.
2. Kui saadakse DEADLINE_EXCEEDED, saab klient turvaliselt uuesti proovida sama võtmega.
3. Ostu teenus kontrollis selle võtme olemasolu oma andmebaasis / Redis-is ja kas või tagastas juba töödeldud tehingu staatuse või töötles selle esmakordselt."