Ctrl K
Backend · Mid-level · Theory

A client sends a POST request to create a payment, the response never arrives because of a timeout, and the client retries the request. How do you make sure the money isn't charged twice?

~4 min by voice

How to approach it

This checks whether the candidate understands how to make a non-idempotent operation safe to retry: an idempotency key, atomically recording the key in the database, handling races and in-flight requests, and idempotency along the whole chain to the payment provider.

Have you seen this question in a real interview?
Answers0
Avg. score—
Strong—
Practiced0
Topics
Similar questionsWrite a handler for creating a payment that takes an idempotency key and the payment data and returns the result. A repeat request with the same key must not charge the money a second time, even if two identical requests arrive simultaneously on different instances of the service; you have a database and an external payment provider. SeniorHow would you implement pagination in a feed API with millions of records where new ones are constantly being added? What options do you know, and how do they differ? Mid-levelDesign a rate limiter for a public API: for example, no more than 100 requests per minute per API key. The service runs on several instances. Mid-levelЧем HTTP/2 отличается от HTTP/1.1 на уровне того, как байты идут по соединению? Какую проблему он решил, какую оставил, и при чём тут HTTP/3? Mid-levelWhat classes of HTTP response codes do you know, and which specific codes does a backend return most often? Junior

Answer by voice

The interviewer will ask this question and listen. Think out loud and ask for a hint if you need one. When you're done, pause or tap “That's my answer”. In about a minute, your score and the points you covered show up here.

Sign in to answer

Best with headphones · ~4 min