Ctrl K
Backend · Senior · Coding

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.

Have you seen this question in a real interview?
Answers0
Avg. score—
Strong—
Practiced0
Topics
Similar questionsСпроектируйте сервис переводов по номеру телефона между клиентами банка: от нажатия кнопки «Перевести» до зачисления денег получателю. SeniorСервис зачислений читает из Kafka события об успешных платежах и пополняет счёт клиента. Как вы гарантируете, что одно и то же событие не зачислит деньги дважды? SeniorWhat's the difference between the HTTP methods GET, POST, PUT, PATCH and DELETE? And what does it mean for a method to be idempotent? JuniorHow would you build a test strategy for a new payment service from scratch? SeniorA daily pipeline loads yesterday's data into the warehouse. Sometimes it fails halfway through, and after a restart duplicates show up in the table. How would you redesign it? Mid-level

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 · ~15 min