26: Robinhood Stock Trading Platform | Systems Design Interview Questions With Ex-Google SWE

26: Robinhood Stock Trading Platform | Systems Design Interview Questions With Ex-Google SWE

Jordan has no life

5 месяцев назад

8,311 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@RohitKumar29
@RohitKumar29 - 08.06.2024 19:07

Really loved the content

Ответить
@KratosProton
@KratosProton - 08.06.2024 19:10

Cool resuming now!!

Ответить
@sohansingh2022
@sohansingh2022 - 08.06.2024 19:23

Thanks 🌹

Ответить
@KratosProton
@KratosProton - 08.06.2024 20:16

Great content, keep it up!!

Ответить
@foxedex447
@foxedex447 - 08.06.2024 21:35

would be cool if next video was about exchanges

Ответить
@nikhilm9494
@nikhilm9494 - 09.06.2024 11:35

Keep up the good work Jordan!

Ответить
@yashaswishetty
@yashaswishetty - 09.06.2024 20:54

Thank you for the great content.. Helps us a lot

Ответить
@neosmith009
@neosmith009 - 11.06.2024 01:38

Good stuff! Would appreciate timestamps.
Also, I feel the justification for mysql could be bolstered by some read and write throughput assumptions tying back to 100M DAUs. e.g. 100M DAUs with limit of 100 orders per day would mean a max of 12k writes per second for a 24hr trading assuming zero spikes.

Additionally, for data oriented engineers, we could talk about the homepage dashboard service where a read heavy & real time analytics database might be a good choice for showing historical performance of the user portfolio and other stats.

Ответить
@divyaundi1055
@divyaundi1055 - 13.06.2024 19:18

exactly what we asked for ;)

Ответить
@Maffeos
@Maffeos - 16.06.2024 02:46

Quick question: in the final diagram you drew the websocket connection as not passing through the pricing service load balancer between the client and the user server. Was that intentional and does it imply websocket connections usually don't work with load balancers?

Ответить
@SwagataBasu-ki4bc
@SwagataBasu-ki4bc - 16.06.2024 16:28

Great content, thanks! I have been going through your database videos and they have been really helpful. Could you please do a design video on Multi-engine malware analyser?

Ответить
@sbahety92
@sbahety92 - 25.06.2024 11:28

Can we use a message queue in between publisher and pricing server ? This will decouple both services and publisher will not be blocked on the response from pricing server.

Ответить
@NBetweenStations
@NBetweenStations - 28.06.2024 04:26

Dope video oh great one! I have a question about the exchange order flow. If I buy a stock and the server makes an order with the exchange, is there some sort of callback from the exchange when it’s filled?? How does Robinhood know when an order is filled or not? Thanks very much

Ответить
@rydmerlin
@rydmerlin - 04.07.2024 20:21

Where is your finance knowledge coming from?

Ответить
@ponsivakumarpalraj7456
@ponsivakumarpalraj7456 - 08.07.2024 20:24

Isn't it ideal to use a queue(Kafka) between the Publisher servers and the Pricing servers? or is that the intention and not specifically mentioned in the final design diagram? thank you!

Ответить
@learningwheel8442
@learningwheel8442 - 22.07.2024 16:56

For pricing server/service, I am still not convinced about the need for Websockets. The user is unlikely to subscribe/unsubscribe to stocks as frequently as they would care about getting the current price of stocks. So bidirectional communication aspect of Websocket is not really useful? For near real time updates, I am wondering if we could get away with SSE considering the cost of maintaining web socket connections and a second/two of extra delay in getting updated prices will have negligible impact on how the client decides to act on it. Thoughts?

Ответить
@guitarMartial
@guitarMartial - 02.09.2024 06:24

Great video Jordan! I was wondering though would it make sense to have a distributed cache Redis style as opposed to intermediary cache replicas on the read path which can enable construction of portfolios for users? The key thing here seems to be minimization of latency and with Redis Enterprise one could scale ops/sec quite effectively for building of ticker trackers for end users.

Second as an optimization - the websocket could selectively send a message to the read path that the stock tracker / pricing page is up so now send me informaiton about quotes to reduce the load on pricing servers.

Finally would Vitess make sense here for horizontal sharding of the MySQL tier? This way the application does not have to implement much around horizontal sharding itself.

Awesome video nonetheless ty! I tried the same problem ahead of time myself - and roughly arrived at a similar solution!

Ответить
@dkcjenx
@dkcjenx - 10.09.2024 09:36

LMAO for tech lead part

Ответить
@silversurferablaze1
@silversurferablaze1 - 17.09.2024 19:33

Lot of sharding there, need to clear my concept on this first 👍

Ответить
@beecal4279
@beecal4279 - 23.09.2024 02:45

thanks for the video;
instead of using websocket for client <-> user_server and user_server <-> pricing_server, what about using server-sent event? so we have automatically reconnection

Ответить
@miry_sof
@miry_sof - 27.09.2024 22:52

What tool do you use for the note?

Ответить
@emenikeanigbogu9368
@emenikeanigbogu9368 - 22.10.2024 01:18

I feel like you can use windowing with flink to consume data from exchange because that will buffer it before hitting the pricing server so we reduce the load on the pricing server.

Edit: It seems that the pricing server isn't doing anything complex, but I feel that it would require more logic to upkeep then just throwing in flink

Ответить
@e431215
@e431215 - 11.11.2024 17:20

Did I miss the PositionsDB route explanation ? OrderDB -> CDC Kafka -> Sream Consumer -> PositionsDB?

Ответить
@skullTT
@skullTT - 24.11.2024 09:39

for hot assets like AAPL, GOOG, do they have dedicated pricing servers? for example, one layer-1 AAPL pricing server directly connect to publisher, multiple layer-2 AAPL pricing server connected to the layer-1 AAPL pricing server, user server will connect any one of the layer-2 pricing server

Ответить