Multi-currency wallet with FX conversion
Your task
Design a multi-currency wallet where a user holds balances in many currencies and can spend in a currency they don't hold, triggering an automatic FX conversion at point of sale. 100M users, peak ~9,000 spend authorizations/sec. The authorization must reserve funds at a quoted FX rate, but the rate has a short TTL and the rate provider can be slow or briefly unavailable. The settled amount (days later) may differ slightly from the authorized amount. How do you keep the wallet balance correct across the auth to FX to settle path?
It covers
- Multi currency
- Fx
- Rate lock