5. Fizetési megbízhatóság: "Hogyan oldódott meg az idempotencia kérdése a gRPC-ben?"
Interjúztató célja: A fizetések — a legveszélyesebb terület a duplikátumok (Double Spending) szempontjából.
Lehetséges kérdés:
"A fizetési kérés gRPC-n keresztül ment, de időkorlát (DEADLINE_EXCEEDED) miatt sikertelen volt. A pénz levonásra került — ismeretlen. Mit csinál a fizetési modul?"
Hogyan válaszoljunk:
"Egy pénzügyi tranzakciós kontextusban minden ismétlődő kérésnek rendelkeznie kell egy Idempotency Key-vel:
1. A gRPC kérés metaadataiban (metadata=((‘x-idempotency-key’, key_uuid),)) mindig egyedi tranzakciós kulcsot továbbítottunk.
2. Amikor DEADLINE_EXCEEDED-et kapunk, a kliens biztonságosan újra próbálkozhat ugyanazzal a kulccsal.
3. A beszerzési szolgáltatás ellenőrizte ennek a kulcsnak a jelenlétét saját adatbázisában / Redis-ben, és vagy visszaadta a már feldolgozott tranzakció állapotát, vagy első alkalommal dolgozta fel azt."