plse dont decrease the length, we want these in depth explanations, we are always learning something new and your explanations are great, watching your videos i actually started to think about tradeoffs and what can we use
@sahilsiddiqui32102 ай бұрын
+1
@TechieTech-gx2kdАй бұрын
+1
@nehalyatham4353Ай бұрын
+1
@hunterleeves131Ай бұрын
+1, as long as you note the moments you’re going into a deep dive that you wouldn’t necessarily do in an interview, I’d love to see more discussion like you did on why Cassandra is better setup for high write load than pSql.
@shailimehta842827 күн бұрын
Super detailed and enjoyed learning about trade offs. Learnt a lot.
@Itssssssmisha08012 ай бұрын
This is so amazing that I don't have words to appreciate the details of the video. Your content is by far the most accurate and some thing that is done with the correct intent to teach.
@hello_interview2 ай бұрын
💙
@krishnabirla162 ай бұрын
I would say these videos are not long enough! More and longer deep dives please. And also side tracks like quickly explaining Cassandra. ❤
@hello_interview2 ай бұрын
🫡
@batusun717Ай бұрын
@@hello_interview the beauty of the system design question is the way you solve one part of the whole question can be applied to another question: for example, splitting a read-heavy and write heavy service into multiple instance and scale them independently. so please keep it as what it is right now. And at the end of the day, we are preparing when watching, time is not the limit, but knowledge is.
@Sanjiban5Ай бұрын
Your videos are literally the BEST system design content out there! Concise, clear, and complete! Great stuff!
@TheCuriousConnoisseurАй бұрын
You have the ability to articulate things in a very nuanced manner whilst still being quite comprehensive. I am someone, trying to level up as a software engineer from senior to staff level. And I find your content absolutely enriching. Keep educating, you have all the skills needed for an "Exceptional Software Development Educator".
@pednikz2 ай бұрын
You guys do amazing work. In all honesty I think you guys are all great but Evan is something else! Last week I had like 3 days to prepare for the system design portion of my onsite and literally all I did was find the videos that Evan made, try the problem myself for 1-2 hours, and then watch the video. I ended up getting an offer! Evan's style and even the way he talks (if you can somehow subconsciously copy it) is exactly what interviewers are looking for it seems!
@hello_interview2 ай бұрын
“Even the way he talks” 😂 idk about that , but hyped you got the offer!! - Evan
@pavithrac.k.8140Ай бұрын
Your videos play out like an action thriller. I am hooked from the beginning to the end and I learn so much from each video. The tangents are the essence of your tutorials so please do keep them coming!
@hello_interviewАй бұрын
Haha you're too nice! Comparing a system design breakdown to an action thriller is something I never thought i'd hear.
@vcfirefox2 ай бұрын
i am HOOKED. consistency in the context of Tinder ...just awesome. Great job Evan!
@hello_interviewАй бұрын
you ROCK 😛
@felixboachieyiadom445713 күн бұрын
i feel so competent after this video
@hello_interview13 күн бұрын
💙
@dioncodestu2 күн бұрын
Love these videos! I appreciate the clear explanations + zero fluff. They also helped me land my current job. Keep it up!
@aishsingsАй бұрын
Hands down the best approach to system design interviews compared to everything else i have watched on youtube. Love your systematic approach. Pointing out what is relevant, what isnt, what points are signals to judge your level etc. Great work!
@stephenliao4502 ай бұрын
I would swipe right on this video a hundred times 😍 perfect balance of breadth and depth. the context on level expectation is super helpful. Looking forward to the next video; would particularly love an infra-focused one after this product-focused topic!
@hello_interviewАй бұрын
Coming right up!
@pradeepkumara2122 ай бұрын
I would like to thank you for your decision to teach system design for free. Really it’s worth to spend my valuable time on hello interview video🤞🏻
@hugo.santos2 ай бұрын
Thanks A LOT Evan! I appreciate the high-quality content-going beyond the introductory level-that you and your team are producing. Thank you for your hard work and dedication. Wishing you continued success in your business. Cheers.
@hello_interview2 ай бұрын
Appreciate you so much!
@brwvАй бұрын
This is the best HLD content available on youtube. The way you explain complex things so elegantly is just amazing!!!
@bqrkhn2 ай бұрын
Oh man, i have been waiting for a new video on this playlist for a long time!! 🙂
@hello_interview2 ай бұрын
Thanks for your patience! 🫶🏻
@bqrkhn2 ай бұрын
@@hello_interview No problem. I have an interview coming up with Amazon (L5), preping for it. This is very helpful.
@hello_interview2 ай бұрын
Good luck, you've got this!
@goyalpankaj2372 ай бұрын
Hi Evan, Yet another masterpiece. I loved the depth you went into. I would like to see same or more depths in videos even if it becomes a 75-90 mins video. Please keep them coming!
@eshw23Ай бұрын
This dudes explanations are so perfect, well organized and easy to understand for people like me who are more around the mid level, thank you!
@AnuragSharma-kb9pcАй бұрын
One of the few places on KZbin helping staff design interview, thanks for helping us
@hello_interviewАй бұрын
🫡
@batusun717Ай бұрын
Evan, even you might thought this video is too long from your end, but from my perspective, this one, surely is in the TOP2(Uber if you ask) videos of yours. Really really appreciate your dedicated work and sharing: you mentioned MANY different ways of achieving a same thing. Even some of the ways isn't taken in this problem, they may be taken in some other cases, I really enjoy watching you evaluating different approaches. We know this certainly takes you lots of time and energy, so thank you again for putting everything together. Thank you!
@hello_interviewАй бұрын
This was really nice to read 🫶 appreciate you!
@HelloMisrajiАй бұрын
Cassandra does have row level atomic operations. If we modify the schema to have Swipe table contain decisions from both swipes, we have the transactional properties that we need.
@RS7-1235 күн бұрын
this is the best explanation on how u do system design interviews. plus the depth of ur content is brilliant. keep doing awesome work. more videos please,
@grapegaming82242 ай бұрын
Don't forget the S3 storage for profile photos! Dating app without pictures is incomplete from a product perspective. Other than that little oversight, fantastic walk through. Thank you!
@go_goa_gone_Ай бұрын
Amazing video. I am a mid level engineer. And the staff level engineer's standpoint helped understand how they perform and whats expected from them.
@ammarmirza4106Күн бұрын
If anyone was a bit more curious about option 2 on the first deep dive around 47:20. Basically, it is possible to make Cassandra fully consistent by setting the consistency config to acknowledge all neighbor nodes. However, this would cause the read/write rate to go down as opposed to using an eventually consistent model where we only need to acknowledge one or half the neighbors. To illustrate with an example you can have 1-2 Cassandra nodes using an eventually consistent config (QUORUM or ONE) to handle a total of 10k reads/writes per sec. But if we change it to be fully consistent then our rate goes does to say 5k reads/writes sec. Now if we double our nodes to 2-4 nodes we are again back at our needed read/write rate but I believe this is an example of scaling up bad design and we can do better.
@ferritafreshi816927 күн бұрын
I have never commented on any video but this video truly deserves my word. This was probably the best system design video I have watched. It gives such details that are required when you want to level up your skills (Senior SA/design or Staff SA/design). Loved the details and I wished all areas had been covered in depth. I could have easily watched two more hours. Please go in depth in all areas even though I think it could get repetitive for you. But you are doing the community a favor by diving deep.
@hello_interview25 күн бұрын
Very kind :) glad you liked it!
@vikramreddy75862 ай бұрын
Kudos to Evan and team. As a senior engineer I find this channel so useful for System Design. The delivery framework works like a charm. Could you guys please start the series for OOAD, because that is where I get stuck sometimes in picking up the correct design pattern. Overall I like the content of the channel and the pace at which each and every aspect is covered. Cheers. And just like GOT drops the hint, you have dropped the hint of next system design video "Distributed Job Scheduler".
@cidwiththreeeyes20 күн бұрын
Can’t thank you enough for the amount of valuable depth in these videos.
@tionx12628 күн бұрын
"We might need to select a partitioning key for Redis to ensure that the reciprocals show up on the same node" I never thought I'd ever have goosebumps from a system design explanation
@ashkankipati2 ай бұрын
video length is good, it's all important info with different approaches, never felt overwhelmed!
@anirudhheda923216 күн бұрын
This was an amazing explanation. Thanks for this goldmine of a series!
@hello_interview16 күн бұрын
Great to hear!
@Hangar1318Ай бұрын
Hey Evan. I am a former FAANG staff engineer and I am interviewing actively now. Your content is the best out there. The deep dives are the best. They've helped me a lot. Please continue creating content. And if there is a Patreon or something I can contribute to then please let us know.
@hello_interviewАй бұрын
Awww man you rock! No need re-patreon. Tell a couple friends about hello interview and we’re more than even. Cheers
@Hangar1318Ай бұрын
@@hello_interviewI have already told a few friends and will continue telling more people :)
@theyayaaАй бұрын
I have my amazon interviews coming up and your videos have been an amazing resource. Thank you!
@alexPajaron27 күн бұрын
Amazing lessons! These are pure gold. I am deeply grateful for all the hard work you are doing. I would have one suggestion if you have time and energy. For me it is quite interesting also to deep dive in topics like api gateway and load balancing. It would be great to have a deep dive on it. Many many thanks for your effort, work and dedication. Keep going please. Cheers!
@puneetjain5021Ай бұрын
This is one of the best channels teaching system design out there. Can you please do a system like google docs as well? Please please please please please. 😁
@tevonwalker433923 күн бұрын
This content is very high quality, well done.
@mse312Ай бұрын
I cannot believe we have this information available for free!!!
@hello_interviewАй бұрын
🆓🫡
@Keyboardscholar2 ай бұрын
I've enjoyed the system design interview videos a lot! Could you potentially do a video on behavior interviews in the future? I know you have an article on the website but a video would be super helpful!
@hello_interview2 ай бұрын
Definitely!
@marjolainegrunenberger2370Ай бұрын
Thank you so much for this video ! Appreciated the level of detail-it wasn’t too long at all
@B-BillyАй бұрын
The QnA section speacialy in Deep dive is realy awesome and really helps. Thanks
@Er0Shara2 ай бұрын
Keeping going Evan (dude in the video) :p, really love your deep dives of the video and system design in general. Love your content and always wait for the new one. videos are lengthy but content is gold.
@hello_interview2 ай бұрын
🫶🫶
@kavishaagarwal71182 ай бұрын
Hey Evan, your videos are amazing! They make system design look so easy and open my mind to think in different directions. I really appreciate your efforts. I’m eagerly waiting for more videos! :)
@richardbrandao7622 ай бұрын
Evan, I could watch 5 hours of video if you do it. Your content is simply brilliant, every time I watch, I fell like I learned for weeks 😅
@hello_interview2 ай бұрын
🥲💙
@stevelin9122 ай бұрын
I like the way you explain how to do the system design interview. Very clear and concise!!!
@hello_interview2 ай бұрын
🫡
@jagrit07Ай бұрын
Lol you are great, I stopped the video half way to comment this. The way you explained the eventually consistency problem where two users swiped each other at the same but Cassandra being eventually consistent will prevent them to ever know and they will not be able to find the love they are seeking lol. Amazing Stuff. Requesting you to create more and more content. You are a legend!
@hello_interviewАй бұрын
😂 ♥️
@cimey062 күн бұрын
@@hello_interview is this right? eventual consistency means data propogated to other replicas eventually. If I partition my swipe table over the user swiping, we can find if two person liked each other or not. but the thing data would be in two different nodes. Am I getting it wrongly?
@gumayuzi939Ай бұрын
After watching this video, I'm 100% sure I want Evan as my manager lmaoo he looks very serious, kind and maybe also very funny
@hello_interviewАй бұрын
Only maybe funny 😝
@Ashutosh-i2l3 күн бұрын
Great video again, thanks! I saw many of your videos and deep dives are super interesting. I felt that some common solutions can be applied to enhance specific part of the systems like the similarity between feed creation logic in LinkedIn and stack creation here. Not sure if there are many but if its the case, please make a video about how to tackle common problems.
@blacky10101122 күн бұрын
Very nice deep dive! 👍 I was thinking, how about if we don't keep log of swipes but rather organize them in some kind of user's lookup state (which would consolidate likes and dislikes), may be in redis as well? Then we would pipe swipes through message queue, match with and update lookup states, and then send notification on successful match. This should help to avoid consistency issues as well. And at end we can add like-flag to users in stack response (if we already got their like for the current user before), so we can get that instant match-on-like directly on client side.
@LoranBriggsАй бұрын
Super useful, don't shorten.
@CorinnaSchultz2 ай бұрын
I'm really enjoying your videos. Well-structured, and with a variety of example systems, the repetition is really useful. You are reducing the intimidation factor, too! Thank you thank you for the "leveling" comments, that makes these videos so much more useful, and also helps us to judge for ourselves where we fall in that rubric. I love your writeups, too! One question I have is how much time per "section" would you spend in a real interview? Like, 5 min, 10 min, etc.
@hello_interview2 ай бұрын
Totally! We have some recommendations here: www.hellointerview.com/learn/system-design/in-a-hurry/delivery
@amitagarwal8006Ай бұрын
Make them of 2 hours, if anything. Super good!!!
@volodymyr.brodskyi2 ай бұрын
Guys, thank you! Good length, good material, some points a bit controversial but I like your style! Thank you!
@hello_interview2 ай бұрын
Controversy sells 😉 kidding, but glad you like it!
@ivanp4740Ай бұрын
This resource is a gold!
@hello_interviewАй бұрын
🏅💙
@raminseferov2148Ай бұрын
Your explanation is amazing, thanks a lot for content
@eshw23Ай бұрын
PLEASE start using the dark mode for excalidraw, i watch these at night to prep haha.
@hunterleeves131Ай бұрын
Such solid content. Thanks man!
@sudosai2 ай бұрын
Beb wake up. Another hello interview video just dropped.🚀
@hello_interview2 ай бұрын
😂😂
@kiranpai825 күн бұрын
Amazing content. Thank you very much♥
@oleksiimolozhanov3943Ай бұрын
Thanks a lot for another great video. The tangents are amazing. I would love to see you going into same/more depth. It's easy to scroll through a section if it is too much. An opposite is impossible ;)
@hello_interviewАй бұрын
True!
@fpsballinАй бұрын
Great video and I really appreciate the leveling guidance. The whole time I was thinking of the “showing the same profile twice” issue, so I’m glad that was covered at the end. I still think it was worthy of covering up front though in the functional requirements, because seeing the same profile repeatedly seems like it would annoy users. One other bit of feedback: the font used is hard to read on mobile, especially when zooming out to a wider view. I get that I’m trying to view a video with a big diagram on a tiny screen and may have to squint, but the font is making the readability worse.
@hello_interviewАй бұрын
Fair point! Heard this a couple times. Will try a different font and more zoom next time
@pavlivАй бұрын
Very nice video, length is great, if one can't sit through an hour long video, probably he is not ready for this topic anyway.
@digitalnomad303Ай бұрын
Learned a lot through this video. 🔥Thanks a lot.
@kavishaagarwal7118Ай бұрын
Hey Evan, could you please please please make a video on News feed as well. 🥺 Love your content.
@e431215Ай бұрын
Commenting, so whenever someone likes it, I will come and rewatch this. Thanks Evan!
@hello_interviewАй бұрын
Putting a reminder to like this every day to pump our view counts.
@TechieTech-gx2kdАй бұрын
@Evan Great video! I have a question about the consistency solution with Postgres you proposed around 53:00. You mentioned having a single row for swipes with columns like user1, user2, user1Decision, user2Decision. However, wouldn't this approach still lead to potential inconsistencies if two users swipe on each other simultaneously? For example, if A right swipes B and B right swipes A at the same moment, wouldn't they create two separate rows with different user1 and user2 values? I'm curious how you would address this scenario to ensure consistency. Thanks! Also, I was thinking about a potential solution. What if we always ordered the user IDs consistently when inserting, like alphabetically or numerically? Then we could use a unique constraint on (user1, user2) and an UPSERT operation. This way, regardless of who swipes first, we'd end up with a single row for both users' decisions. Might solve the consistency issue without needing two separate rows. Just a thought!
@jaganmolleti7078Ай бұрын
excellent! thank you very much
@mxypurplemeng914Ай бұрын
The Best system design videos 😊
@hello_interviewАй бұрын
The beta system design videos viewer 😉
@rahulgoel76522 ай бұрын
Great content as always Evan!
@TedMosby-fk5gjАй бұрын
Thank you your explanations are the best, please also do one for Netflix I got asked that recently and its the most interesting.
@hello_interviewАй бұрын
Check our KZbin write up. Pretty similar.
@rakeshranjan5071Ай бұрын
Thank you for such a great video
@3rd_iimpactАй бұрын
Thanks, Evan! This is amazing. Quick question. The calculation you did for the average user swipes per second, would we need to do similar calculations in a Meta interview?
@mailtokvvnАй бұрын
Thanks for great video, one question on swipe db, what is the partition key based on as two users are required to form the key.
@yulinxp2 ай бұрын
Our love is in the air, and you have it all!
@hello_interview2 ай бұрын
♥️♥️♥️
@Harry-p3dАй бұрын
Hi Evan, thank you for sharing the high-quality video! One quick question: in the step of drawing the design diagram, when do you use one-directional arrows between boxes? When do you use the bidirectional arrows? I am looking forward to your reply. Thank you!
@hello_interviewАй бұрын
Tbh I don’t focus on it much. I’m sure I have inaccuracies there. Yo be correct it would be whether the flow of data is bi- or uni-directional
@mangeshshikrodkar6192Ай бұрын
As far as I remember, we wanted to have swipe db as strongly consistent. We used cassandra as it is optimized for writes and write vol for swipe is far greater than set profile/getStack. But cassandra by itself prioritizes availability over consistency. So , how can we achieve initial cap requriement.
@mangeshshikrodkar6192Ай бұрын
i think it is replied in 'deep dive'. I did deep dive next day.
@peiyuzou7754Күн бұрын
This is amazing great!
@user-ky7bi9cl2zАй бұрын
50:34 I would not recommend SAGA pattern here. 2 Phase commit is a better option here I believe (if we have to deal with distributed transactions). SAGA pattern usually implies that different operations are happening (with possible rollback) on business layer with eventual consistency. While 2PC tries to abstract away the distributed transaction as atomic operation on business layer. Moreover if we are ok with eventual consistency here, instead of 2PC, we can try to utilise CDC from Redis to Cassandra (would improve write throughout for users)
@kennethlee95613 күн бұрын
For the Cassandra + Redis solution to ensure consistency and a match is not lost, wouldn't the Redis cluster grow too big eventually? The write throughput is high and there is no definite TTL to invalidate the cache. For example lets assume a strict requirement of no matches are lost, A swipes on B a year ago, B swipe on A now, we still want the match to be registered. That means we have to check both Redis and Cassandra for each swipe because a swipe not being on the cache might just mean that it happened too long ago and it should be in Cassandra now.
@dibllАй бұрын
Could you pls elaborate more on lat/long problem - when you say we are using indexes to query two dimensional data?
@pythonop730318 күн бұрын
Sad that I can only like once. Great video
@yuvrajchauhan9410Ай бұрын
Another great video by the HelloInterview team :) A point of clarification - it was mentioned earlier that swipes would require strong consistency, but then later on it was mentioned that Cassandra is ideal as a database of choice given its stronger write performance. However, Cassandra in the context of CAP theorom is an eventually consistent database. Are we saying that Cassandra is still a great choice because the level of consistency in Cassandra can be tuned to be either strong or weak? Thank you!!!
@yuvrajchauhan9410Ай бұрын
Evan talks about it at 44:06 - nice!
@hello_interviewАй бұрын
Keep watching :) we get into that
@fernieqin90903Ай бұрын
Very very nice video.
@damluar2 ай бұрын
Could you please explain why you decided not to configure Cassandra to have a quorum for reads and writes (R + W > N)? Was it mostly because it will affect write throughput?
@hello_interview2 ай бұрын
Yah great call out. Thats exactly why. It basically neutralizes the reason we chose it in the first place.
@flyingpiggy7415 күн бұрын
51:30 [Thought]: We are talking about partitioning here. Just wondering if we are only keeping the 'Yes' record here? Because if not, we will also have the same size issue as mentioned later. could be 36.5TB /year. If yes. I am wondering about the accept rate, could it be 1/100 or 1/1000 or 1/10. If it is 1/100 we will have 365GB/yr. Looks like possible? Again like I mentioned earlier, what if redis is down? Just some thoughts here.
@8610803eternalАй бұрын
Thanks for the video! When implementing the Redis solution, wouldn’t availability of cache resources be an issue? Now every swipe event will cause a check in the cache for the inverse swipe. If redis is single-threaded, wouldn’t that overload the cache?
@hello_interviewАй бұрын
In memory! Redis clusters can handle hundreds of millions of reads a second
@talebsouli4767Ай бұрын
Your content is dope, Thank you
@hello_interviewАй бұрын
You’re dope 🫡
@DaVIDmXD1Ай бұрын
Isn’t redis eventual consistent when using clusters? Or would you use a single instance? How would you scale that?
@weiboliu60952 ай бұрын
thanks for your sharing, great content there. regarding the cassandra for write, I am assuming the row keys are user ids, but how about the columns? is the column also user id? then how do we deal with the case where column reach 200millions? I just check that with gpt that the performance would degragaded after the column reach 200m. are we missing the assumption that the system will handle less than 200m users?
@rakheesunil11452 ай бұрын
Thank you so much for this amazing contents. Really helpful. Which is this software you are using for depicting the design?
@hello_interview2 ай бұрын
Excalidraw
@bangbang86Ай бұрын
First of all, Thanks a ton, this is really helpful, the delivery framework and deep dive is great, it makes everything easy to follow. Regarding using Cassandra, could it be replaced by DynamoDB and consistent reads. If i understand dynamodb correctly then it will solve the issue without any write scaling penalty, please correct me. Also the redis cache solution for consistency, what would be the TTL for this cache, I think it should be a greater than the time for cassandra write to propogate to all the cluster nodes something like 60 seconds at max. Please clarify. Suggestions The tangent explanations which made this video longer can be a separate ~15 minute videos. Please consider tagging system, Atlassian asks this a lot.
@appsicle2 ай бұрын
Loving the videos. I have a couple system design rounds coming up despite the roles being for frontend. How deep in terms of infra/backend knowledge do I need to go? I've never worked with most of these technologies like redis/cassandra/CDC/locks/partitioning etc. so it feels like im mostly just regurgitating knowledge from youtube videos rather than real work experience. Are system design interviews for frontend candidates focused more on browser caching, tokens, debouncing, throttling etc. or is it identical to backend interviews?
@hello_interview2 ай бұрын
Can’t speak too confidently to this, never given a front end interview myself. Checkout thegreatfrontend though. Great stuff over there!
@flyingpiggy7415 күн бұрын
50:04 what if the redis server is down? Will the match not happen until it is back up again? Will Redis cluster replication be a good option? There might still be a few seconds key miss. Is it an acceptable solution?
@illusioncc2 ай бұрын
Great content. An advice, could we use a normal font rather than the current one? Because that is hard and require more time to recognize the text. Thanks!
@hello_interviewАй бұрын
Next time!
@jaiganajs2 ай бұрын
thanks, just awesome
@vvvk852113 күн бұрын
Is it really possible to scale supported writes amount by adding Postgres nodes? I thought the whole database had to be stored in one node in RDBMS (To have ACID transactions).
@jihanzhang55273 күн бұрын
Is it possible for us to consider deploying the whole system to multi regions and then how we can still handle everything. Since we are considering how to reduce the latency and increasing availability then that’s a great strategy to achieve but it makes the data layer much more complicated
@Marcus-yc3ibАй бұрын
Hi, Really Thank you a lot. Just curious, Is it possible for you to do some deep dive about different databases and How should we pick the right database in different cases. Thank you very much.
@hello_interviewАй бұрын
Will add it to the list!
@kiranpai825 күн бұрын
How do we decide who is user1 and user2 for the 3rd approach to maintain consistency? Imagine user 1 and user 2 match at the same time how will both users check if an entry already exists in the swipe db?
@atabhatti28442 ай бұрын
I'd like to record myself the same way you have shot these videos (screen share of excalidraw and popout view of the candidate) so that I can practice. What setup and tool do you use? BTW great videos! Keep up the good work!
@hello_interview2 ай бұрын
Excalidraw and screen studio!
@flyingpiggy7415 күн бұрын
52:08 Could it be a CDC on top of Cassandra? if We do we can have a worker read from the CDC stream and write to the Redis and also check if there is a match there to avoid the inconsistency?