Multi-currency wallet with FX conversion

DesignHard40 minPayPal style

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