5. Тұрақтылық төлемдер: "gRPC-де идемпотенттілік мәселесі қалай шешілді?"
Интервьюердің мақсаты: Төлемдер — қайталанулар үшін ең қауіпті аймақ (Double Spending).
Мүмкін сұрақ:
"Төлем сұранысы gRPC арқылы өтті, бірақ уақытша шектеу (DEADLINE_EXCEEDED) себебінен сәтсіз болды. Ақша алынды ма — белгісіз. Төлем модулі не істейді?"
Қалай жауап беру керек:
"Қаржылық транзакциялық контекстте, кез келген қайталанған сұранысқа Idempotency Key болуы керек:
1. gRPC сұрауының метадатасында (metadata=((‘x-idempotency-key’, key_uuid),)) әрқашан бірегей транзакция кілті жібердік.
2. DEADLINE_EXCEEDED алғанда, клиент қауіпсіз түрде сол кілтпен қайтадан әрекет ете алады.
3. Алу қызметі, бұл кілттің өз базасында / Redis-те бар-жоғын тексереді және немесе бұрын өңделген транзакцияның мәртебесін қайтарады немесе оны алғаш рет өңдейді."