Write 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.
~15 min by voice
How to approach it
They're checking whether you can make an operation exactly-once in terms of its effects in a distributed system: atomically claim the key through the database before calling the provider, correctly handle concurrent retries and the unknown outcome of an external call, and prevent a double charge.
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.