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.
@ramannanda9 сағат бұрын
For the delta sync bit, probably should go a bit deeper into rechunking for an existing file, to perform the delta sync.
@JohnVandivier21 сағат бұрын
Nice advice on back of the envelope 👍
@JohnVandivier21 сағат бұрын
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Күн бұрын
Great Vid, redis cache needs expiry, how do we manage eviction?
@hello_interviewКүн бұрын
For the idempotency keys? Just have a reasonable TTL based on cost constraints
@chengchen8028Күн бұрын
Absolutely a good video and explanations!
@ramannandaКүн бұрын
why not use kafka for storing/doing streaming aggregations into the OLAP?
@ramannandaКүн бұрын
Ah, spoke too soon lol :)
@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Күн бұрын
Will be the best system design interview channel for sure. Neat content. Keep up with the quality Man!
@wenhsiangshih45152 күн бұрын
nice video. Thank you for creating this video. I learned a lot from watching it!
@volodymyr.brodskyi2 күн бұрын
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Күн бұрын
Excalidraw!
@chengchen80282 күн бұрын
Incredible video with excellent drawing and explanation.
@drai_vids2 күн бұрын
Does anyone know the name of the tool he is using to diagram?
@hello_interview2 күн бұрын
Excalidraw
@davidoh09052 күн бұрын
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!
@KENTOSI2 күн бұрын
Excellent walk-though!
@JinilSasidharan3 күн бұрын
Awesome! This helps a lot. Thanks so much Evan for these videos. ❤
@jimitshah76363 күн бұрын
Great video for system design preparation. Methodology, the way he approached the question was good. 5 steps. Pretty good
@vanessapinto97373 күн бұрын
These are Excellent! Please keep going.
@maharshishah48403 күн бұрын
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_interview3 күн бұрын
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.
@raghavbansal90203 күн бұрын
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_interview3 күн бұрын
Checkout all the written breakdowns on our website! More there. Also some blogs on the product architecture interview worth reading
@adityaagrawal48783 күн бұрын
GEM
@mayankkaushik68373 күн бұрын
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_interview3 күн бұрын
Should be fixed!
@onionking2334 күн бұрын
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.
@AkhilGopi0072 күн бұрын
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.
@sripkuc51894 күн бұрын
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 ?
@sripkuc51894 күн бұрын
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
@srikanthkini32064 күн бұрын
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_interview4 күн бұрын
Sweet!
@Andrew-pj9ik4 күн бұрын
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.
@meh25124 күн бұрын
can you please do video on news feed or messenger/whatsapp?
@hello_interview4 күн бұрын
Soon! We’ve crawler next
@bhaskardabhi4 күн бұрын
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?
@hot133995 күн бұрын
Looking forward to more great videos from you! :)
@WenyanYan5 күн бұрын
This is phenomenal !!!
@dibll5 күн бұрын
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-nv4jv5 күн бұрын
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.
@mayankkaushik68375 күн бұрын
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
@adeeshacharya75205 күн бұрын
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
@JohnVandivier5 күн бұрын
Nit: MongoDB isn’t open source
@JohnVandivier5 күн бұрын
Great! Super common question. Instagram or link shortener next please!
@ashishm89916 күн бұрын
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 :)
@ronymathew28626 күн бұрын
Which is the tool used in video for illustration?
@hello_interview6 күн бұрын
Excalidraw
@kartikeyshrivastava51786 күн бұрын
Can u please upload system design interview for all basic topic.
@hello_interview6 күн бұрын
What did you have in mind?
@chongxiaocao57377 күн бұрын
one of the best system design preparation video I have seen online.
@sonalsubramanian40007 күн бұрын
Great work. Thanks for sharing!
@zfarahx7 күн бұрын
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_interview7 күн бұрын
Yah this was the first one i made a while ago and honestly consider deleting
@zfarahx7 күн бұрын
@@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.
@sonalsubramanian40007 күн бұрын
One of the best systems design videos . Concepts are so well explained. Thank you!! I wish I found your site sooner. 😊
@Edgarkibetdetective7 күн бұрын
HelloInterview to the world! Great great content.
@Ma5terM8 күн бұрын
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_interview8 күн бұрын
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
@MrSnackysmorez8 күн бұрын
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.
@sharansrivatsa2108 күн бұрын
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?
@AnIndianSingh8 күн бұрын
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.
@flowersideOrfa8 күн бұрын
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_interview8 күн бұрын
Yah others commented the same. It wouldn’t be the best fit for this reason. Would opt for something like redis instead