Пікірлер
@VahidOnTheMove
@VahidOnTheMove 2 сағат бұрын
Thanks for the videos. 47:45 I would like to know your opinion on push approach? By push approach I meant when the File service knows there is a change in a chunk, Sync service will let the client know. And, then the client will send a request to sync/download the chunk.
@ramannanda
@ramannanda 9 сағат бұрын
For the delta sync bit, probably should go a bit deeper into rechunking for an existing file, to perform the delta sync.
@JohnVandivier
@JohnVandivier 21 сағат бұрын
Nice advice on back of the envelope 👍
@JohnVandivier
@JohnVandivier 21 сағат бұрын
Hm. Why Redis plus CDN? Doesn’t the CDN already cache? Isn’t Redis for all tweets really expensive? On cost, no back of the envelope math? No discussion of microservice infrastructure? Lambda/EC2/EKS?
@ramannanda
@ramannanda Күн бұрын
Great Vid, redis cache needs expiry, how do we manage eviction?
@hello_interview
@hello_interview Күн бұрын
For the idempotency keys? Just have a reasonable TTL based on cost constraints
@chengchen8028
@chengchen8028 Күн бұрын
Absolutely a good video and explanations!
@ramannanda
@ramannanda Күн бұрын
why not use kafka for storing/doing streaming aggregations into the OLAP?
@ramannanda
@ramannanda Күн бұрын
Ah, spoke too soon lol :)
@tunepa4418
@tunepa4418 Күн бұрын
Please can you clarify this? You mentioned the count query on cassandra will be really slow. Would it really be slow? If the partition key is ad_id and the sort key is timestamp. I assume all the data for the same id will be on the same partition sorted by timestamp. Why would it be slow?
@ashutoshrana9998
@ashutoshrana9998 Күн бұрын
Will be the best system design interview channel for sure. Neat content. Keep up with the quality Man!
@wenhsiangshih4515
@wenhsiangshih4515 2 күн бұрын
nice video. Thank you for creating this video. I learned a lot from watching it!
@volodymyr.brodskyi
@volodymyr.brodskyi 2 күн бұрын
Thank you, Evan! I don’t have any plans regarding FAANG, but I will improve my systems using the same steps and perspective! I have a question: what tool are you using for drawing?
@hello_interview
@hello_interview Күн бұрын
Excalidraw!
@chengchen8028
@chengchen8028 2 күн бұрын
Incredible video with excellent drawing and explanation.
@drai_vids
@drai_vids 2 күн бұрын
Does anyone know the name of the tool he is using to diagram?
@hello_interview
@hello_interview 2 күн бұрын
Excalidraw
@davidoh0905
@davidoh0905 2 күн бұрын
How can it be DynamoDB? I thought we'd need the relationship to relate things like rider_id, driver_id, rider_id ... I guess not! Everything is just associated with primary keys! I might have confused with Ticketmaster video :) Thanks for the great content!
@KENTOSI
@KENTOSI 2 күн бұрын
Excellent walk-though!
@JinilSasidharan
@JinilSasidharan 3 күн бұрын
Awesome! This helps a lot. Thanks so much Evan for these videos. ❤
@jimitshah7636
@jimitshah7636 3 күн бұрын
Great video for system design preparation. Methodology, the way he approached the question was good. 5 steps. Pretty good
@vanessapinto9737
@vanessapinto9737 3 күн бұрын
These are Excellent! Please keep going.
@maharshishah4840
@maharshishah4840 3 күн бұрын
Some interviewers really like seeing estimation numbers earlier on before going into the higher level design despite what you generally suggest we should do. Can you may be also create a video where you do some relevant capacity estimations early on and later guide the higher level design? I would love to see if there is a good way to get some numbers in during "requirements" phase
@hello_interview
@hello_interview 3 күн бұрын
In general I’d say ask up front. Explain your reasoning and ask if they’d like you to then proceed from there. It’s pretty hard for me to think of what estimations I’d do directly up front that would inform anything. The classic bandwidth and storage is far too crude to inform in my opinion and I can already estimate based on DAU alone until later in the design.
@raghavbansal9020
@raghavbansal9020 3 күн бұрын
IN the first 5 mins I reliased how amazingly you have explained this system. Thank you so much. I have a product architecture round, if I do your playlist, will that be enough ? Or anything else I should cover to succeed in that round? Your response will really help. Thanks in advance!!
@hello_interview
@hello_interview 3 күн бұрын
Checkout all the written breakdowns on our website! More there. Also some blogs on the product architecture interview worth reading
@adityaagrawal4878
@adityaagrawal4878 3 күн бұрын
GEM
@mayankkaushik6837
@mayankkaushik6837 3 күн бұрын
I can't access the answer keys and vote for questions page on the website. Don't know if that's by design or a bug. Btw really love how you start from the "bad" but intuitive solution first and build on top of that
@hello_interview
@hello_interview 3 күн бұрын
Should be fixed!
@onionking233
@onionking233 4 күн бұрын
did you miss the concurrent booking for the same ticket (last) ? say 2 users are trying to reserve the same ticket. They add the entry into the redis at the same time, which causes the same ticket shown up for 2 different users in Redis cache. So, optimistic locking is the solution as we all know.
@AkhilGopi007
@AkhilGopi007 2 күн бұрын
Yeah looks like that. I think it can be solved by setting the value to user ID instead of a boolean. Also you can make it more fault tolerant by using the redlock algorithm.
@sripkuc5189
@sripkuc5189 4 күн бұрын
Honestly these are the best set of system design interview videos on the web. There is so much junk out there; it's a relief to have an engineer who knows what they are talking about (even if they don't necessarily have hands on experience with the system in question).. Since your videos are already so high quality, I have a few nitpicks: Stream processing folks outside LinkedIn (Jay Keeps loved Lambda :)) don't really like "lambda architecture".. stream processing is as correct as batch. You don't need one to validate the other The two other aspects I feel you could have covered - Dealing with duplicate records being delivered by Kafka / kinesis (which by default have "atleast once" semantics) - preventing flink from reading records more than once (due to race condition between storing log offset and flush to DB) - dealing with Data center level failures . What happens here ? The whole service stalls?.. do we spin this in a new Dataceter?. Wouldn't capacity estimation be a pain ?
@sripkuc5189
@sripkuc5189 4 күн бұрын
One suggestion I would make is.. while it's amazing that you tell what is expected from an entry leve to a staff+ level candidate, it perhaps make sense to say it explicitly in your videos that you cannot "fake" expertise.. you'll easily get caught. Being a FANG System design interviewer myself, I really get triggered when a candidate tries to show fake confidence and throw buzz words without admitting it's a guess. For me, a staff level candidate just naturally finds issues / problem areas in their own design and then.admits they they dont really know how exactly to solve it but have seen it to be done a certain way..(or they admit they don't know how to.solve that hole their identified) To me the act of identifying the stress points is more.importabt than actually solving them (This is ofcourse assuming that the person is answering a question not in their area of primary expertise) The biggest value for me from your videos is that I get a good sense of how to structure my answers and how to navigate a system design question in an unfamiliar domain
@srikanthkini3206
@srikanthkini3206 4 күн бұрын
I really like the depth you cover in your videos. It is the depth and the presentation style that I really love. It is amazing to watch you present. Thank you for uploading and you have a new subscriber.
@hello_interview
@hello_interview 4 күн бұрын
Sweet!
@Andrew-pj9ik
@Andrew-pj9ik 4 күн бұрын
Thanks for the great videos - they are extremely helpful. I noticed at around 24 mins in you mention querying for the number of distinct userIDs. I don't think you're going to be able to serve queries like that using the pre-aggregation you suggest doing with Flink. I don't know a good solution to this problem other than dumping the list of userIDs for each minute window into your OLAP DB. You might be able to use HLL hashes for this, but depending on how granular the dimensions are in your DB, it may not be worth it.. I think it's at least worth mentioning this if we think users care about unique counts.
@meh2512
@meh2512 4 күн бұрын
can you please do video on news feed or messenger/whatsapp?
@hello_interview
@hello_interview 4 күн бұрын
Soon! We’ve crawler next
@bhaskardabhi
@bhaskardabhi 4 күн бұрын
May be a noob question, why do you need Load balancer before Api gateway? shouldnt that be after api gateway as gateway itself will be resilient enough to balance the traffic? May be after gateway we decide if request is going to particular service then which server of that particular service it should goto?
@hot13399
@hot13399 5 күн бұрын
Looking forward to more great videos from you! :)
@WenyanYan
@WenyanYan 5 күн бұрын
This is phenomenal !!!
@dibll
@dibll 5 күн бұрын
You talked about using cache for popular tweets but where this cache is being used? If it's in the timeline service than how does the system knows that one of the tweet in the cache is from one of the user's follower and hence needs to be included in the timeline?
@MahSan-nv4jv
@MahSan-nv4jv 5 күн бұрын
Towards the end the "Virtual waiting room" kept me thinking. People who are booking seats for larger venues know which places they want to choose. Keeping an uber and monolith waiting queue is sub-optimal. May be divide the ticket areas in to booking zones (premium, near stage, aisle, etc.) and offer wait for those zones. We can also show what wait queues size, % of seats filled , etc. in these zones while loading/waiting. Nice and Sweet walk through. Hard to find this kind of content for assessing levels. Thank you so much.
@mayankkaushik6837
@mayankkaushik6837 5 күн бұрын
One of the best system design videos on youtube. Really well explained and detailed designed. Especially liked how you talked about what signals are sent by how you design individual components and how that impacts your seniority level
@adeeshacharya7520
@adeeshacharya7520 5 күн бұрын
This is really good, irrespective of whether we are taking interview or not, any person looking at this level of explanation and detail would try to picture software differnetly. Thanks for making such videos, would love to see some more
@JohnVandivier
@JohnVandivier 5 күн бұрын
Nit: MongoDB isn’t open source
@JohnVandivier
@JohnVandivier 5 күн бұрын
Great! Super common question. Instagram or link shortener next please!
@ashishm8991
@ashishm8991 6 күн бұрын
Finding your channel feels like finding gold! There are ton of SD videos on youtube with shallow content basically exactly like you mention what a junior or mid level candidate would do. Going indepth for senior and staff is one of the highlight of your content. Please continue doing that. Also please don't worry about length of the video. Keep the gold coming :)
@ronymathew2862
@ronymathew2862 6 күн бұрын
Which is the tool used in video for illustration?
@hello_interview
@hello_interview 6 күн бұрын
Excalidraw
@kartikeyshrivastava5178
@kartikeyshrivastava5178 6 күн бұрын
Can u please upload system design interview for all basic topic.
@hello_interview
@hello_interview 6 күн бұрын
What did you have in mind?
@chongxiaocao5737
@chongxiaocao5737 7 күн бұрын
one of the best system design preparation video I have seen online.
@sonalsubramanian4000
@sonalsubramanian4000 7 күн бұрын
Great work. Thanks for sharing!
@zfarahx
@zfarahx 7 күн бұрын
Wonderful, I've watched all of the videos on your channel and I'm kind finishing up with this one. I guess this was a proof of concept perhaps? Either way, it's great. Love to see that you defined a framework for the other videos. Looking forward to more of those!
@hello_interview
@hello_interview 7 күн бұрын
Yah this was the first one i made a while ago and honestly consider deleting
@zfarahx
@zfarahx 7 күн бұрын
@@hello_interview for what it’s worth, I learned a ton from this one. - You showcase here that it’s worth delineating read/write paths for specific* services, which is not something you folks have done in the other videos (it sounds obvious but it’s not for someone of my level). - You spend a bunch of time towards the end talking about salient points we could make, whether related to security, monitoring and testing. Again, points you don’t quite bring up in the others. Now if you’re ever going to make a new Twitter design video, perhaps? I don’t know, you guys are doing a tremendous job leading this anyway. Thought I’d share some user-feedback. Cheers.
@sonalsubramanian4000
@sonalsubramanian4000 7 күн бұрын
One of the best systems design videos . Concepts are so well explained. Thank you!! I wish I found your site sooner. 😊
@Edgarkibetdetective
@Edgarkibetdetective 7 күн бұрын
HelloInterview to the world! Great great content.
@Ma5terM
@Ma5terM 8 күн бұрын
Thanks for this video! I really liked how you broke down what is expected at each level. I wanted to ask, you didn't separate the databases into different ones for each microservice. I thought usually different teams might own different microservices so the databases are each separate?
@hello_interview
@hello_interview 8 күн бұрын
Yah. Microservices zealots feel strongly about this. I don’t. Maintaining different databases sucks. So i see no reason to separate them unless they’re going to be sharded on different things
@MrSnackysmorez
@MrSnackysmorez 8 күн бұрын
Thank you very much for this. Much more concise than any of the materials I have seen thus far. I love that you call out the benchmarks as well so we can know what the standard is for this type of question.
@sharansrivatsa210
@sharansrivatsa210 8 күн бұрын
Thank you for this video! It is very helpful. I do have a question though - lets say the same file is modified by 2 devices at the same time. How do we handle sync in that case?
@AnIndianSingh
@AnIndianSingh 8 күн бұрын
I am just starting to prepare for interviews and Uber was the first one I wanted to understand since the location based matching kept bugging my brain. After watching this, I am glad that I did. Learnt so many new things in this single video. Thank you.
@flowersideOrfa
@flowersideOrfa 8 күн бұрын
Great video. Thanks a lot for sharing this. Just one comment, is DynamoDb the best for the distribute lock? it does allow you to set a TTL but it does not give any guarantees of when the record will be removed. I think it was up to 48 hours after the expiration. Is this correct? We would need to filter out expired items which is fine but just something to keep in account.
@hello_interview
@hello_interview 8 күн бұрын
Yah others commented the same. It wouldn’t be the best fit for this reason. Would opt for something like redis instead