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."