Π’Ρ‘ΠΌΠ½Ρ‹ΠΉ

Meta Interview Question | System Design: Online Auction & Bidding Service (Revisited, 5+ Approaches) 

System Design Fight Club
ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ 81 тыс.
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 9 тыс.
50% 1

System design (HLD) for online auction & bidding service by a FAANG Senior Engineer that has reviewed over 100 design documents. πŸ“š
This video will cover the complete high-level design and data flow diagrams for the software architecture entailed by this common system design interview question.
NOTES & CORRECTIONS:
- excalidraw file: excalidraw.com...
- screenshots of the excalidraw file: imgur.com/a/f6...
- text file: pastebin.com/Z...

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ:

 

6 сСн 2024

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ:

Бсылка:

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ:

Π“ΠΎΡ‚ΠΎΠ²ΠΈΠΌ ссылку...

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²:

Мой плСйлист
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ : 11   
@SDFC
@SDFC 9 мСсяцСв Π½Π°Π·Π°Π΄
NOTES & CORRECTIONS: - excalidraw file: excalidraw.com/#json=F9pXk1R2fi6HS_Y64ku19,3098QR5ScfqWSCWCQa-STA - text file: pastebin.com/ZW3z13LW
@pengchen4556
@pengchen4556 7 мСсяцСв Π½Π°Π·Π°Π΄
what is the reason using dynamodb / cassandra instead of mySQL? and for what reason use postegres instead of mySQL?
@nishchaypareek8955
@nishchaypareek8955 9 мСсяцСв Π½Π°Π·Π°Π΄
How to handle concurrent requests to place bid? I do not want to accept a bid if it is lower than the winning bid.
@SDFC
@SDFC 9 мСсяцСв Π½Π°Π·Π°Π΄
So, "real-time enforcement of database constraints" is roughly the exact definition of the linearizability consistency level. Although it's hard to design this in a manner that would allow sufficiently reducing the consistency guarantee of the data store to something with clear availability improvements, I think it's at least worth avoiding linearizability (which only the highly costly option of Spanner can actually guarantee in distributed set-ups) -- this is why I prefer the event sourcing approaches that were described in the video. However, I will say that your requested conditions are an alternative approach that'd at least be worth exploring and considering in an actual design doc and for the sake of being comprehensive, so I wish I had considered that variation while doing the recording for this video. Something that I think could still possibly provide the real-time enforcement of "winning bids only" would be taking the manually sharded postgreSQL/MySQL approach and running the individual nodes on a high isolation level, such as "serializable". I think this might be considered "causal consistency" or "sequential consistency" for the overall set of DB nodes, and I think it's quite uncommon to provide "real-time constraints" for those consistency levels and this seems higher complexity imo, but it should work and would be a very fascinating approach. Great question. Thanks!
@nomnom8692
@nomnom8692 7 мСсяцСв Π½Π°Π·Π°Π΄
Which of the approaches is the best one on your opinion? (Sorry if you said in video, I just couldn't find)
@RSM.AUCTIONS
@RSM.AUCTIONS 8 мСсяцСв Π½Π°Π·Π°Π΄
Hi there, Im trying to make an auction website/marketplace. Ive just completed UI and now i need it developed. Is there anyone here that can tackle this? Best, Foz
@alekseyklintsevich43
@alekseyklintsevich43 9 мСсяцСв Π½Π°Π·Π°Π΄
I don't believe that you need OLAP at all here
@SDFC
@SDFC 9 мСсяцСв Π½Π°Π·Π°Π΄
correct, it’s completely avoidable However, that kind of pattern seems fairly common in practice (particularly at banks) and it seems like a genuine approach that somebody might consider, which is why the approach was still included and explored in the video for the sake of being comprehensive.
@fragrancias972
@fragrancias972 7 мСсяцСв Π½Π°Π·Π°Π΄
Do you have any more information on how to improve 2PC using Raft?
@TrendyTrends-qk9zf
@TrendyTrends-qk9zf 9 мСсяцСв Π½Π°Π·Π°Π΄
Diagram is over engineer to me with too many queues to decouple each component. It would be more practical to use some real data (maybe ebay) to determine the scale and TPS for Auction system. In addition, it will be more clear to design the system with defining requirements before drawing the diagram. It is just very confusing to change existing system without clear new requirements.
@SDFC
@SDFC 9 мСсяцСв Π½Π°Π·Π°Π΄
Okay, I normally ignore a comment like this one, but I want to assume the comment was "well-meaning" and treat it as an opportunity for learning or addressing some confusion: 1) They're "streams", not "queues" (except for the that last approach that somebody had explicitly requested in the live chat) 2) It sounds like you might not understand the purpose of message brokers beyond the "decoupling" mantra usually spouted as a quick explanation... By offloading the retries for partial failures to the downstream side of a message broker, your own service can remain available even when a dependency in downstream data flow experiences an outage (which happens hundreds or even thousands of times per week within the services running amazon.com -- brokers are a key component to why these outages rarely have a direct impact on the user experience for buyers) -- This is why message brokers are absolutely crucial for providing high availability in the majority of places with a service-oriented architecture. 3) You could design this for a scale of 10 TPS in the way that I know Square/Block likes to do in their interviews, but I've honestly always wondered what the point is of drawing a single box and single cylinder? Are they just testing that the new grads have actually taken a course on "intro to databases"? 4) I really do wish that I was doing machine count estimates with back-of-envelope calculations though. However, those require substantially less creativity and seem to usually show up as skipped in my video retention graphs whenever I've done them -- additionally, it's only one or two companies that actually care for those in senior+ rounds and if you're really trying to crack those interviews, then you can most likely figure out that part pretty easily on your own (but again, I would like to start fitting those into the videos again at some point) 5) The requirements are CLEARLY visible on the screen for the entire first 15-30 minutes of the video on the text pad covering the right half of my screen. In my opinion, this shows that you're likely just not paying attention. (I can empathize with how the length of these videos means that you're likely going to miss some stuff even if you do watch the whole thing, but dude, it was literally _right there_ for a big chunk of the video. -- I personally try to seek to disprove my assumptions before any attempts to provide feedback.) To give you another benefit of a doubt, you might be taking issue with my preference for doing multiple approaches, which I'm aware is "unusual" -- but, if you just want to see a quick regurgitation of a template derived from one of Alex Xu's books or a quick trash take by a new grad followed by the senior interviewer very politely confirming your suspicion that it was a trash take, there's literally more than a dozen other channels out there that are already doing that, so for clarification, that's why I have this "unusual" personal preference with my videos of trying to make something more comprehensive and similar to a case study than a mock interview.
Π”Π°Π»Π΅Π΅
Meta Interview Question | System Design: Privacy & Visibility Controls (5+ Approaches)
1:30:52
Design a High-Throughput Logging System | System Design
8:23
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 44 тыс.
Bike Challenge
00:20
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 12 ΠΌΠ»Π½
28: Bidding Platform (eBay) | Systems Design Interview Questions With Ex-Google SWE
34:33
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 4,6 тыс.
System Design: Facebook Messenger (5+ approaches)
55:24
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 15 тыс.
Design LeetCode - System Design Interview
12:11
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 2,5 тыс.
System Design Interview: Design Dropbox or Google Drive w/ a Ex-Meta Staff Engineer
58:08
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 43 тыс.
Absolutely Everything That I Know About Database Indexes
55:43
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 15 тыс.
Tiny URL - System Design Interview Question (URL shortener)
9:39
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 117 тыс.
Google system design interview: Design Spotify (with ex-Google EM)
42:13
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 1 ΠΌΠ»Π½
Basic System Design for Uber or Lyft | System Design Interview Prep
16:18
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 786 тыс.
Machine Learning Interview Question | System Design: Recommendation Engine (5+ Approaches)
2:25:11
Kafka Deep Dive w/ a Ex-Meta Staff Engineer
43:31
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 27 тыс.