Code Room
System designHardsd-g393
Subject Double entryLevel Senior–Staff~40 minCommon in Distributed systems interviewsIndustries Technology, Software development

Question

Design the double-entry postings for a cross-currency PAYMENT (not a balance conversion): a sender pays 100 EUR and the recipient receives USD, settled through your own FX inventory. Per-currency the books must each balance to zero, the FX spread must land in a P&L account, and the system must handle ~7,000 such payments/sec while staying auditable. The subtlety: a single user-facing transfer touches two currencies, so 'debits == credits' can't be checked across currencies — only within each. How do you structure the entries so each currency balances and the FX gain/loss is captured exactly?

What a strong answer looks like

Clarify scale and constraints first. Propose a clean component breakdown, then go deep on the hard parts — data model, bottlenecks, consistency, failure modes — and name the trade-offs you are making.

Narrate your design
Loading whiteboard…
Run or narrate your approach, then ask the coach.