Robinhood Backend System Design — How to Receive Realtime Stock Updates
Robinhood Stock Broker app backend is one of the complex distributed systems that are currently available. The backend design not only require that the service is highly available and scalable but based on the financial nature of the app it also require strong consistency and high reliability. If you are asked to design such a system in a system design interview then very first and important step is to come up with the right set of functional and non-functional requirements. If you consider the functional requirements:
- The authorization process has to be easy while promoting safety and account security. This requires multiple check-in options, such as pin code, biometrics recognition, multi-factor authentication, etc.
- Enable users to build an investment portfolio made of stocks, bonds, mutual funds, ETFs, cash, and other financial assets like cryptos.
- A user account include profile data, stocks/ETFs buying/selling functionality, and setting up the notifications, and setting up frequency in which the account should be debited, etc.
- All investing apps have an account overview for the users to track their portfolios. Robinhood’s dashboard should display in one place all information an investor should know: order status, balance, charts, holdings, Watchlist, etc.
- Investors need the latest financial market news and insights, i.e. falls and rises in their portfolio and which stocks are trending, in one place. So, Robinhood should provide such market data in real-time.
- This Robinhood makes it convenient for users to track the performance of stocks they are interested in and then buy or sell those stocks. During the search, autocomplete help users find more companies to add to their Watchlist.
- Enable users to quickly add the stocks to the Watchlist and then unfollow them as easily as needed.
- A trading module with buy and sell functions is the core functionality of applications like Robinhood. It’s vital to make the entire process of holding, buying, and selling as straightforward and hassle-free as possible. It can be combined with checking bids and deposits, monitoring transactions, and receiving payments in several forms.