Sobes.tech
Middle+

5. Betrouwbaarheid van betalingen: "Hoe werd het probleem van idempotentie opgelost in gRPC?" Doel van de interviewer: Betalingen — het gevaarlijkste gebied voor duplicaten (Double Spending). Mogelijke vraag: "De betalingsaanvraag ging via gRPC maar miste door timeout (DEADLINE_EXCEEDED). Is het geld afgeschreven — onbekend. Wat doet de betalingsmodule?" Hoe te antwoorden: "In een financiële transactionele context moet elke herhaalde aanvraag een Idempotency Key hebben: 1. In de metadata van de gRPC-aanvraag (metadata=((‘x-idempotency-key’, key_uuid),)) hebben we altijd een unieke transactie-sleutel doorgegeven. 2. Bij ontvangst van DEADLINE_EXCEEDED kon de client veilig opnieuw proberen met dezelfde sleutel. 3. De acquisitiedienst controleerde de aanwezigheid van deze sleutel in zijn database / Redis en gaf of de status van de al verwerkte transactie terug of verwerkte deze voor de eerste keer."