The Tech Granth is your ultimate destination for expert tutorials on distributed system design and data structures. Dive into the fascinating world of distributed systems as we explore topics like microservices architecture, scalability, fault tolerance, and event-driven design. Gain in-depth knowledge of data structures through comprehensive tutorials covering binary trees, linked lists, hash tables, and more. Our channel offers clear explanations, practical examples, and valuable insights to help you master these complex concepts. Join our community of tech enthusiasts and level up your skills with The Tech Granth's engaging tutorials on distributed system design and data structures.
grokking the system design interview (both high level system design and low level system design) leetcode problems and solutions
Do like share and subscribe to the channel, that really motivates :) Put your thoughts in the comment section, will revert ASAP
Hi, Great video. Can you also make a video on how to do data modelling? In an interview, I was asked to write/draw data modelling for a scenaro and I'm not sure how to proceed.
hi sir, what do you mean by distributed storage ? you are saying that its present in Europe but if its distributed then its present everywhere. why we require cdn 's then
Could've refactored the if-else cascading at 15:03, the logic looks very reduandant at places. You could've done teh nextposition[0] == nextcell check once after checking for both the ladders and snaked. If (nextposition[0] > nextcell) {// ladder} else {// snake bit}
Hey man great video and thanks for explaining Instagram design in simple terms. Just one small suggestion: In the ending section of the video, it would be super helpful if you can also show the final architecture diagram to grasp the full picture once again, just like we do on the whiteboard when we are done providing the solution :)
the explanation is good but consistency and availability are 2 conflicting goals. most distributed systems must be designed with partition tolerance as a non-negotiable requirement. This means that during network partitions, the system must continue to operate and serve requests to the best of its ability, even if this results in temporary inconsistencies or reduced availability.
If Payment Ingestion and Payment Processor services are two different microservices, shouldn't they have acess to different databases? The way you described they're using the same database, is that right?
Nice explanation. What I did was instead of performing any lock on DB I kept the locking data at cache level so to have less updates on DB while my DB acted as source of truth for currently available seats. First call goes to DB fetch all the available seats then read cache and filters (remove) the booking in progress seats. When user tries to perform the payment a) it blocks the seat by adding the detail in the cache with some TTL b) it again verifies if that seat is available or not by calling cache. By this I tried saving my system from calling DB which have latency in order of ms while created dependency on cache having latency in order of ns. Though questions might pop up on a) distributed cache handling in this case, b) when should we put lock - when user clicks book now or when user clicks pay now. c) other bottlenecks related to system or user experience
That is a great explanation. But, How will you handle the user viewed feed/post. If user is scrolling the feed fast.We need to track that user view this post.So, we don;t show the same post/feed again.
i think there is some mistake in generating diceRoll (((int)( Math.random() * 6*2 - 2)) + 1); if numberOfDice = 2, then 12-2 = 10 + 1 = 11 we never achieve 12. Edit: Instead we can use this (((int)( Math.random() * 6*numberOfDice)) + 1), correct me if i am wrong.
Math.random has a syntax of int rand = (int)(Math.random() * range) + min; So i guess it should be (int)(Math.random() * 6*numberOfDice) + 2; Because we can never get 1 Correct me if I am wrong
two questions: 1) why not using some other cache service separately for celebs? 2) why not storing the count of likes in post tables and separate like on other tables so when user will like it will increament the like in post table also insert like in like table!
At ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-NxjGFIgFCbg.html, "Consistency and availability should be chosen over partition tolerance". The video creator is referring to the famous CAP theorem, but he understands it in the wrong way. The CAP theorem states that a system can only have 2 over 3 properties: Consistency, Availability, and Network partition tolerance. And the creator is saying that we should prioritize CA over P. In reality, network partitions in distributed system is unavoidable, making partition tolerance (P) a necessary consideration. Therefore, we can only choose either consistency or availability (CP or AP), but CA is impractical.
i prefer using a buffered file locally with a log collection agent. So that the main service threads are not blocked. Sending a log doesn't need 100% reliability anyway.
Hi sir, so in the token bucket algo and sliding window algo there is only difference in the structure of how we are storing data, in sliding window we store the time stamps also, as per the logic explained in the token bucket, is that right?? Pls confirm sir
I feel this is a better way of implementing the refresh method: private void refresh(long currTimeInSec) { long cutoffTime = currTimeInSec - windowInSecs; while(!window.isEmpty() && window.peek() < cutoffTime) window.poll(); }
In the post table, you mentioned sir that photoURL will be the path to photo in S3, but a single post will have mulitple pics/videos each of which will have unique photoURL from S3 na?
Hi sir @10:33, what will happen in case the lady has taken away less than 5 balls in the latest minute, lets say 3 still in bucket and she took 2, then at the end of minute pipe too will add 5 balls, so there will be 5+3 total in bucket right?
Hey, one question, I believe there should be only one service that interacts with the DB, if you have two components writing to the DB, it will not centralise the logic in one place. So what i mean is to expose the database via apis. Let me know your thoughts on this.
Bro but in real Book my show does not have the movie or theatre db . In real it should be an external real time feed from different cinima operators and the real challenge is to book and provide status in real time with third party data.. because other platforms are also using same data and punching booking orders to theatre database. I am not sure how to handle that. Is it simple poling or these platforms have did hard integration where these cinimas or theater push the data in message queues and book my show and paytm like players are on consumer side..