I’m trying to build an MVP for my trading application. I have a bit of programming experience (Swift, little bit of Python and SQL) but its been hard for me to wrap my head around the back end processes of an app like Robinhood. Can any one offer insight on those processes and the tech stack behind them? How can I visualize them in the most basic way?
I don’t need to use a massive amount of different databases because I’m only building the MVP. Essentially, I really only want to understand RH’s backend processes when they first started out with limited users, not now with their 13 million user load.
Instead of thinking about servers, think about people. If you wanted to create an all in one stock trading service, like a guy in a kiosk, what would you need to be able to do? No screens, just verbal communication.
(As full disclosure, I’ve never used RH so I’m just riffing here.)
- ask for a list of all stocks and prices - maybe be able to paginate (get 20 at a time)
- get more detailed information about a specific stock
- give a sell order
- give a buy order
- get the latest price (for sell and buy confirmations)
If there was a stock trading kiosk at the mall, those are things I would expect the guy to be able to do for me. When moving to an app, I’d also want to think about:
- authenticate and authorize the user
- get information about the user’s account
- change user’s information
For a basic app, I’d expect something like that. I don’t know how digital trading works, maybe there is also a way to temporarily lock in a price for 90 seconds or whatever while you are mulling it over, like buying airline tickets online.
The other thing you would need to think about would be communications. For a lot of these things you will want to use a RESTful connection, where the client app makes all the requests. But what about if they are looking at a specific stock and the price is fluctuating. Does the app make an http request every second to get the new price? Another way would be to open up a socket so the server can tell the client when the data changes.
I don’t know - those are some of the things I would think about.
So I can only guess what an application like Robinhood is built on, or the exact specifics to how it interfaces with the overall stock market at its current scale.
I guess their actual tech stack is probably highly scalable and “built for speed”, as a slow stock market app probably isn’t very useful. Furthermore there is some information that you could check out, like this page. Which should be taken with a grain of salt as idk how its verified.
However, I do know a few basic system architecture concepts that might be helpful here.
Then don’t create multiple databases!
The MVP’s goal is more to test viability of the product, rather than the viability of your tech stack/approach. Furthermore the stack/application architecture choices you make to support you first 100 user’s is totally different than if your planning on supporting 100 thousand or millions, or even billions.
I’m sure Robinhood’s stack has evolved over time, as essentially every large scale application has.
Now if your looking for information more in line with "what programming language should I use? What front-end framework should I use? Your probably not focusing on the important choices, as it doesn’t really matter in most cases what tech stack your using, especially initially. There are some considerations you can make to plan slightly ahead, but if your looking at the MVP, I’d worry more about the speed in which you get your MVP out there, rather than how you can move forward from it.