5. Niezawodność płatności: "Jak rozwiązano problem idempotencji w gRPC?"
Cel rozmówcy: Płatności — najbardziej niebezpieczna dziedzina dla duplikatów (Double Spending).
Możliwe pytanie:
"Żądanie płatności przeszło przez gRPC, ale nie powiodło się z powodu przekroczenia limitu czasu (DEADLINE_EXCEEDED). Czy pieniądze zostały odjęte — nie wiadomo. Co robi moduł płatności?"
Jak odpowiedzieć:
"W kontekście transakcji finansowej każde powtarzające się żądanie musi mieć Klucz Idempotencji:
1. W metadanych żądania gRPC (metadata=((‘x-idempotency-key’, key_uuid),)) zawsze przesyłaliśmy unikalny klucz transakcji.
2. Po otrzymaniu DEADLINE_EXCEEDED, klient mógł bezpiecznie ponowić próbę z tym samym kluczem.
3. Usługa przejęcia sprawdzała obecność tego klucza w swojej bazie danych / Redis i albo zwracała status już przetworzonej transakcji, albo przetwarzała ją po raz pierwszy."