Design the intake of a payments API at Stripe’s size, where the network drops responses, clients retry, and charging someone twice is the one thing that must never happen. Correctness under retries is the whole exercise.
Practise this challenge
All system design challenges