Sobes.tech
Middle+

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