Bloomberg System Design Interview: Live Stock Price Streaming to Watchlists
Based on questions reported for Bloomberg interviews
The interviewer opens
Hi, and thanks for joining. Welcome to your interview for the software engineer role at Bloomberg. We'll design a system together, and you can sketch on the whiteboard on the right of your screen as you talk. If you need to step out or take a break, the Pause button at the top right will pause the interview.
The problem is about streaming live stock prices to users' watchlists, which is close to what Bloomberg terminals do every day. It's up in the Problem tab, so please read through the requirements and ask me anything you'd like clarified before you start drawing.
The problem
Design a system that takes live prices from stock exchanges and streams them to thousands of users' screens, where each user receives updates only for the tickers on their own watchlist.
Must do
- Ingest live price updates from several stock exchanges
- Users create and edit a watchlist of tickers
- Push each price update to every user watching that ticker
- Users see only updates for tickers on their watchlist
Must hold
- Updates reach screens within milliseconds of arriving from the exchange
- Updates for a ticker arrive in the order the exchange published them