01A user taps Buy — what must be true before the order leaves our system?
The order is validated (symbol, quantity, market hours), buying power is atomically held, and the order is durably recorded — only then does it go out to a venue.
Premium preview
Design a retail stock trading platform like Robinhood that lets millions of users place buy/sell orders, tracks cash and positions with regulatory-grade accuracy, and streams live quotes without ever...
The requirements are open as a taste. From the numbers onward, the full guide opens in the app.
Do not only state requirements. Ask for them. Each card pairs the design constraint with a clarification question you can say out loud before drawing the architecture.
01A user taps Buy — what must be true before the order leaves our system?
The order is validated (symbol, quantity, market hours), buying power is atomically held, and the order is durably recorded — only then does it go out to a venue.
02Market orders only, or limit orders too?
Both: a market order takes whatever price the venue gives now; a limit order can rest for hours holding its buying power, and cancel/replace is an explicit state transition.
03What does the user see while the order is working?
The full lifecycle, pushed live: created → submitted → partially_filled → filled, cancelled, or rejected — each fill updates position and average cost as it lands.
04How exact do cash and positions have to be?
Regulator-exact: every cash and share movement is an append-only double-entry ledger line tied to a fill, and balances are derived from those lines — never edited in place.
05What do watchlists show, and how fresh does it need to be?
Live quotes for every watched symbol, conflated to about one update per second per client — the latest price, not every raw tick.
06The app times out and the user taps Buy again — two orders?
No: every submission carries a client-generated idempotency key, so a retry of the same tap maps back to the same order instead of creating a second trade.
Out of scopeThe matching engine itself — we route to exchanges and market makers, we are not the venue (the stock-exchange sibling question) · Margin lending, options, and crypto (cash equities only) · Clearing and settlement mechanics beyond recording settled versus unsettled cash
01Which is worse for us: rejecting a good order or executing a duplicate?
A duplicate is worse than a rejection: the order plane picks correctness over availability — when in doubt it rejects and says so, because a double trade is real money and a regulatory event.
02Quotes are melting at 9:30 — can that touch order placement?
Market data and orders are separate planes with separate services and stores, so the quote fan-out can melt at the open without slowing a single order.
03What load do we actually size for?
Sized for the opening bell, not the daily average — order rate runs roughly 8× average in the first minutes, so the order plane is pre-scaled before 9:30, not autoscaled after.
04What does the regulator get when they ask what happened?
Every order, amendment, cancel, and fill is immutably logged with timestamps — the audit trail is appended and replayable, never overwritten.
05How fast must an order acknowledge versus a quote refresh?
Order acknowledgment feels instant (~200 ms to the submitted state), while quotes only need ~1 s freshness — two planes, two very different latency budgets.
Real interviews probe far more than a tidy list. These are the scope questions that separate candidates who interrogate the problem from those who recite it.
Numbers, architecture diagram, API and data model, deep dives, expected topics, self-check, whiteboard starter, and common mistakes unlock inside the app.
Locked in the app
Locked in the app
Locked in the app
Locked in the app