According to researches by the adsmember team
व्हाट्सएप सिस्टम आर्किटेक्चर एक सामान्य सिस्टम डिजाइन साक्षात्कार प्रश्न है। यह साक्षात्कार प्रश्न हमें चैट संदेश भेजने, प्राप्तियां पढ़ने, समूह संदेश भेजने और अंतिम बार देखी गई दृश्यता जैसी सुविधाओं के एक सेट का चयन करने के लिए कहता है। चैट सिस्टम को स्केलेबल होना चाहिए और अन्य गैर-कार्यात्मक आवश्यकताएं होनी चाहिए जैसे संदेश आदेश, पुन: परीक्षण, निष्क्रियता, लोड संतुलन और छवि साझाकरण। अनुशंसित सिस्टम डिज़ाइन वीडियो कोर्स:
वीडियो व्याख्यान के साथ, इस पाठ्यक्रम में वास्तुकला आरेख, क्षमता योजना, एपीआई अनुबंध और मूल्यांकन परीक्षण हैं। यह एक पूरा पैकेज है। 20% छूट के लिए कूपन कोड ‘अर्लीबर्ड’ का उपयोग करें! चैनल पर अन्य सिस्टम डिज़ाइन वीडियो यहाँ देखें: संदर्भ: डेटा गहन अनुप्रयोगों को डिज़ाइन करना –
सिस्टम डिज़ाइन प्लेलिस्ट – लोड बैलेंसर –
मैसेजिंग idempotency और ऑर्डरिंग –
अध्याय 00:00 आवश्यकता सेटिंग 02:35 छवि भंडारण 03:07 सिस्टम डिज़ाइन 15:00 लोड बैलेंसर 21:00 लगातार हैशिंग 21:55 संदेश कतार 23:05 मैसेजिंग idempotency और ऑर्डरिंग #SystemDesign #DesignWhatsapp #gkcs आप मेरा अनुसरण कर सकते हैं: लिंक्डइन:
गिटहब:
source
Bhaiya ye video ne meri placement lagva di, thank you so much
A critical piece that I feel is missing here is delivery of messages when the user is offline. You might not have an active connection to all users at all but you do need to deliver all the messages that were sent to them once they are connected.
Hi Gaurav, Thank you so much for the great content!
May I know why we're using Gateway here where the request con directly be routed to service?
What would sit in front of the gateways that determines which gateway a client connects to?
Is the Gateway and Loadbalancer same? I thought the gateway would do load balancing as well? why is this a separate box in this video?
Whatsapp is the best chat and message application. Clear quality audio and video. Good features
WhatsApp doesn't store the chat messages in their servers once its delivered. Chat messages are stored on the client mobile and periodically backed up to some network file storage i guess. Correct me if im wrong.
how does the userA initiated requests always go to the gatewayA and so on. how is the affinity maintained. Will we not have a load balance btw users and the gateway. My question is how is the stateful affinity of a user to gateway server maintained. Because userA request cant go to gatewayB
But in it one thing, WhatsApp must have had history searching in search engine to find the contact. It would work like Ram v/s Hard drive, that's mean once search then it will never appear in search history after searching. Anyway I was getting interested to know abt it…..But why it's so??
So when I read telegram messages, the frontend will send that I read each message to the server one by one?
12:43 Now I understand why my gf would still show online for sometime even after we have sent goodnight messages. ??
Good video! Would have liked even more if you had included following points as well becuase I felt lost there.
1. How does the gateway manage the TCP connections for each user? Is it in memory or in external store? What happens to the clients connection and messages when the gateway goes down?
2. How does the session service talks to gateway? Is it using RPC or message passing etc?
if you are using Consistent Hashing on groupId to know which users belongs to a particular group.. Why you are not using Consistent hashing in Session service , on UserId to find out out which user Connected to to which Box/gateway ?? In any case number of User is going to be much much more than the total group exist so it probably make it fast also. Please clarify
To many references to other videos. I understand your want to avoid duplicate work, but it really breaks the flow.
Hi Gaurav , do you have courses on data structures and algos as well? It just cracks my head .. Leet Code solutions are so complex .. your courses are so easy to understand .
Very clearly explained
Thank you Sir. I moved from India to San Antonio as new college grad. Amazon offering me 500K per year. Excited. Thanks for video.
thanks for making our life more simple with release this, so we can skip CRUD and start build whatsapp for first implementation
You mentioned we should limit the number of people in groups. How Telegram manages to have thousands of people in there group. Over there are they using Pull mechanism like Instagram?
Do i need to know all these as a developer?
I'm not a IT student but this video is nice
Hey Gaurav – you are doing a great Job. Thanks for the videos. One suggestion, at the end if you can please leave the final Architecture diagram, in the video for sometime to recap every thing, it will amazing 2 minute recap of return viewers like me.
As you can understand that I work with developers to add the business.
Wow Gaurav you should tap your back for being so popular. Lyft HR in USA forwarded this link of yours as an example to get acquittance to System Design interviews. Kudos on this achievement.
quite impressed with this guy
should the last seen query microservice also use an API gateway? if not, why not? I am curious.
It would be best to even talk about scale estimation numbers too. For example, what is the load that this system can load and to what scale does this system handle. Basically, what should this system be a distributed problem and the estimation numbers would help in quantifying the scale.
Wonderful video which covers all the technical concepts involved. This is incomplete without any resource estimates like storage/bw and what kind of stores to use like a Key/Value store like etcd will work etc.
Hey, gaurav!
I am a product manager and I am extremely interested in your content, but as you can understand that I work with developers to add the business/product side and probably I don't need to go into extremely dev oriented details and I am sure there are more like me who want to understand these things without going into the details beyond a point – for common folks, so to speak.
Can you create a series of videos which gives people like me an overview of different components of any backend architecture system?
I don't really understand why is everything a microservice? Contextually, the domain boundary is not small enough to be called a microservice. I think the safer bet would be to develop a set of microservices under one domain – for example: session-store, session-read, session-write etc.
Gaurav, thanks for your efforts, they are very helpful,
I am from Data Engineering background, do you have any leads that explains(effectively like these ones in your channel) the system designs for data lake projects.
I really liked the ticktock system design interview with yogeetha, that was cool.
Gaurav, can we combine the sessions MS with last seen? I figured any foreground activity could just be noted there and if sessions MS is down then probably last seen isn’t super important. Clients would just have a more stale timestamp of their contacts.