Client Server Architecture | System Design Tutorials | Part 3 | 2020
This is the third video in the series of System Design Primer Course. We talk about one of the basic components of System Design: Client Server Architecture and it's different flavours. We want software engineers and aspiring software engineers to develop basics and get ready for the world of interviews as well as excelling as a Software Engineer.
------------------------------------------------------------------
Recommendations
------------------------------------------------------------------
Our full courses on youtube:
✒ System Design Primer Course: • System Design Primer C...
✒ REST APIs made easy: • REST APIs MADE EASY
Some paid courses that we recommend:
✒Educative.io: bit.ly/3qnW5ku
✒Interviewready.io: get.interviewready.io/ (Use coupon code SUDOCODE for extra discount)
------------------------------------------------------------------
About Us
------------------------------------------------------------------
Created and Instructed by:
Yogita Sharma
✒ LinkedIn - / yogita-sharma-83400b55
✒ Instagram - / sudo.code1
✒ Facebook - / sudo.code
✒ Medium - / yogita088
Post-production(editing, thumbnail etc) managed by:
CiKi
✒ Website: www.ciki.co.in
✒ LinkedIn: / 74735937
Colors and design by:
Naini Todi
✒ LinkedIn - / nainitodi
Both Arpit and Yogita are software engineers and want to help other software engineers become better by providing high quality and well researched content by adding their creativity and teaching twist.
------------------------------------------------------------------
Join Us
------------------------------------------------------------------
Hangout with sudoCode:
✒Discord Server: / discord
For business:
✒Email: sudocode.yogita@gmail.com
Quiz for this video.
List down the real world use cases when you would choose a thick client architecture over thin client architecture and vice versa. List pros and cons in all scenarios. Can you think of a system which has thick client and thin client and multiple tiers? Also, can servers behave as clients?
Пікірлер: 140
My Answer to the quiz question Q1 - Thin client chosen than thick client The heavy computation required: The use cases where heavy computation is required, in those cases, we should do processing at the server only and not at the client. Q2 - Thick client chosen than thin client Light computation and less network access preferred: In certain applications where we have light computations possible on the device and the resource is heavy to be transferred on the network, in those cases, Thick clients must be chosen. Q3 - A system with thick client Thin client and n tier architecture. A good example of a system with all a thick client, thin client, and an n tier architecture is Zoom (I am not sure), because in case of zoom, streaming is done from the server, if I wanna change the background (Done at the client) and obviously they will have an n tier architecture to make a scalable system. Q4 - Can servers behave as clients? Yes, A client can act as a server. In cases where my server is making an API call to some other service (for example - Twitter API), the server is acting as a client. I am a beginner, please correct wherever I am wrong.
Ma'am I can't stop my tears! Prof discussed but don't know what he discussed but your lecture gave me a better insight of topics. Thank you
Quiz answers: 1) When I choose thick client over thin client architecture : When a system want to takes care of more computation in the client side and want to relay less on the server side in this scenario we can go for thick client. Example: Ms-Excel, Ms-Paint. 2) When I choose thin client over think client architecture: When a system want to takes care of more computation in the server side and making client lite weight in this scenario we can go for thin client. Example : Web-browser. 3) Pros and Cons of thick and thin client: Thick client: Pros : 1) System can perform seamlessly without considering network latency. 2) More cost to maintain. 3) High responsive to the user Cons: 1) No assurance of data availability as it has possibility of system crash and other difficulties. 2) High cost to maintain the app. 3) Effective usage of system resource is less. Thin client: Pros: 1) Easy to manage/maintain system infrastructure. 2) Highly scalable and easy maintainable app 3) Cost effective Cons: 1) Highly dependent on network connectivity/availability. 2) Each components are managed by component professionals. 4) Thick client example : Ms-Excel Thin client example : webserver Multi tier example : youtube 5) Yes, Server can be a client also, because in large enterprise applications not all the apps takes care of computations some may get the other processed/computation result and take care of responsibility to get back to presentation layer.
@yujianzhao6461
Жыл бұрын
where do you find the quiz?
@yogeshkumarverma2125
Жыл бұрын
how is this a pro? 3) Pros and Cons of thick and thin client: Thick client: Pros : 2) More cost to maintain. ???
@yogeshkumarverma2125
Жыл бұрын
@@yujianzhao6461 its in the last of description
I'm honestly happy with the 3 videos released so far. The content is well explained. Keep going
@sudocode
3 жыл бұрын
Thank you Sachin. :)
This series helps in bringing together loose ends and tries to give complete picture of overall System designing.
@sudocode
2 жыл бұрын
Thanks Apply
Just letting you know - this course is awesome! Discovered you through the system design video with Gaurav Sen; and your content is gold. Thanks for taking the time to put together these videos!
In 6 mins you have explained it so much better than hours of lecture. Thank you.
Thanks for the great explanation! My answer to the quiz: 1. Cases to choose thick client architecture over thin client architecture: a. Fitness App: As the data in a fitness app is user-specific, it would be costly and unnecessary to call the server for tracking progress. b. Grammarly: Rules can be stored at the client end to make suggestions. 3 tier architecture can also be a valid option for this if the logic is too complicated. 2. Cases to choose thin client architecture over thick client architecture: a. Stock Broker App: The client is just an interface that should be updated regularly from the server. All the processing logic also resides with the server. b. Random key generation service: The logic for the generation and mapping of keys must reside with the server.
Great video I still don't understand why some youtubers who just provide unnecessary roadmaps and give gyaan on how to crack FAANG interviews gets lakhs of views while someone like you who is actually providing quality content for clearing those interviews is getting so less views
@sudocode
3 жыл бұрын
Thanks a lot. We will get lakh views too. Things take time :) Keep supporting and sharing.
@sarthakagarwal221
3 жыл бұрын
Hope so 👍
@darshanjain3287
2 жыл бұрын
thats may be because people like to plan rather than following the plan
Great video that was simple but very detailed. I learned a lot in 6 minutes, I am really enjoying this series. :)
@sudocode
3 жыл бұрын
Thanks Chuks. That's what we are intending bro so with to course 😅
I am really spellbound the clarity of explanation. Really helped in my interview.
Thick client applications normally require the installation of application on the client side (user application). They take up space and memory on users machine. Eg - Microsoft outlook Thin client applications are typically the web applications which can simply be accessed by internet. Eg - google
Very crisp and clear, thank you for making these videos!!
@sudocode
2 жыл бұрын
Glad you like them!
Great explanation, I just hope and pray ther series expands and huge shoutout and appreciation to the creator and thier team. May God bless you all with health and wealth.
@sudocode
2 жыл бұрын
Thanks a lot for such wonderful wishes Raihan. God bless you and you family too 🙂
You're doing really good. :) Explanation was nice and crystal clear
N tier architecture : heavy video games like valorant . They have load balancer. A lot of threads and entities to handle . Thick client : Adobe photoshop . Mostly the client side has heavy load. Standalone software like unity One tier architecture: water reminder apps
The way you explain all the stuff is amazing. more power to you.✌✌✌
Thanks for being so concise.
Thank you for the making the clear conceptual video.
Good series on system design and explained in very simple way so that everyone understands. Thanks Yogita.
A thick client can be chosen when more amount of processing work is to be done in the client side like gaming purpose, editing applications, etc. A thin client can be chosen when computational processing is to be done on the server side of the system An n-tier architecture can be chosen when the data stored in the database or the system is huge enough to be processed on the same computer or system and hence they are broken into parts , a very good example of n-tier system is social media apps like facebook and instagram which stores users data(number of users in billions ) and manipulate them according to the users requirement
Simple and elegant!
On my 3rd video and I can experience the genuine effort you have put to publish the course and that too for free. Thanks a lot and wish you 100k subscribers soon. 🙂
Best free tutorial on system design.. thanks a lot mam.. god bless 🙏🙏
@sudocode
3 жыл бұрын
Most welcome 😊
Yogita, I must say.. You are too good 💯🇮🇳 Thanks for the course ❤
Great content with easy explanation to connect the dots
Great explanation. Thank you so much
Thankyou for this series. Its a perfect place to start
@sudocode
Жыл бұрын
Glad that you liked it :)
well explained on the situation we need different types of architecture with examples
too good mam..... got my doubts cleared Thank You ❤
Simple and to the point. 👍
@sudocode
3 жыл бұрын
Thanks Jinalkumar
thanks for your time
i will be following this tutorial completly
@sudocode
3 жыл бұрын
Sure Shivam. Do join our slack group for collaborating with other engineers 👍. Link in description
You're a genius bruh
One of the best series for Systems design beginners. Great job. Examples Thin client: Spotify Thick client: Atlassian Jira, Wordpress Two Tier: Simple full stack application Three Tier: KZread
@sudocode
3 жыл бұрын
Glad you like it Jafar!
Thank you very much!!!
extremely good explanation
Well Explanation ma'am!❤
Look forward to your videos on weekends..keep going.
@sudocode
3 жыл бұрын
Thanks Aakash. New video on Data and Data Flow releases Monday 10:00 AM(IST). Happy Learning
This is awsome explanation 🎉
Great going. Keep doing such great work
@sudocode
3 жыл бұрын
Thank you, I will
Wow !!! Clear and nice presentation 😍
@sudocode
2 жыл бұрын
Thanks Athira
Thank you so much
Ma'am very helpful in exam i catch my 10 marks in 6 minute thank you so much ❤️
Great series
it is really useful ..very good explanation keep going
Thanks alot
Thanks !
Facebook,Amazon- n tier architecture, since it has to serve market place, groups,etc differently for a wide user base. Apps like smallpdf , pdf resizer usually dont use a server to send data and apply the algorithms to resize or compress. So I think they are thick client ones since client does all that. Github-thin client since all the computation takes place in server I guess.
we choose a thick client architecture over thin client when most of the processing has to be done on the client side and when we don't want to have network blockage or highly depend on the networks. where as we use thin client architecture over thick client when most of the part has to be processed on the servers i.e where the client has to relay more on the server side and there's less load on the client side.
You're doing really well Sister. Keep ahead.
@sudocode
3 жыл бұрын
Thanks brother :)
Thanks
There is a difference between layering and tiering, here you mixed both concepts
really Great Explanation 👌👌
@sudocode
3 жыл бұрын
Thanks a lot 😊
Nice explained.
premium content for free. hard to believe
Wow simple, short & amazing!!!
@sudocode
3 жыл бұрын
Thank you! 🙂
great content
1. List down the real world use cases when you would choose a thick client architecture over thin client architecture and vice versa. List pros and cons in all scenarios. - Thick over thin => a heavy note-taking app like OneNote or Notion Pros: More cost efficient as less resources will be required on the server-side Cons: User experience can deteriorate if on slower machines - Thin over thick => a portfolio website Pros: Quick user experience Cons: Less interactive content 2. Can you think of a system which has thick client and thin client and multiple tiers? Instagram 3. Also, can servers behave as clients? Yes. A server performing logical manipulations can behave as a client for a server that only serves data. I'm a total newbie to System Design. So, my answers could be way off. Any corrections are welcome. Thanks!
@sudocode
3 жыл бұрын
Right on!
How does the transmission occur between 2 and 3 tier architecture?
There’s one more architecture (single tier architecture), example is standalone games, ie everything resides and processing is done on the client machine itself. Also Multiplayer games can be better categorised as Thick client and thin Server architecture, ie game runs on the client machine which can take a lot of processing power and server acts as a data store to register all the data to keep the experience in sync for all the clients connected to the game server.
@sudocode
2 жыл бұрын
Absolutely Nishant.
After watching these videos, I am going back to my college and demand a refund for the fee I deposited during 4 years of my B.Tech. Stupid faculty didn't know shit!
1) List down the real world use cases when you would choose a thick client architecture over thin client architecture and vice versa. Thick > thin: a drawing software (not online, because if it were online, it would be thin-client?), a video editing app, garage band Thin > thick: simple website for querying train schedules, calculating tax payments 2) List pros and cons in all scenarios. Drawing software pros of using thick: - has to handle a lot of user data (as strokes) and processing would be much faster if the logic was done on the client side cons of using thick: - processing will be limited by the compute of the client server; improvements to compute in the backend server wouldn't impact performance that much Simple website querying train schedule pros of thin: - light-weight and cheaper - does not need much data from client - can improve performance on the backend cons of thin: - limited by network/communication 3) Can you think of a system which has thick client and thin client and multiple tiers? Multi-layer: Netflix, KZread 4) Also, can servers behave as clients? Yes, when you start working with third-party APIs
Thankyou
#50k soon ❤️ thanks sudocode
Ma'am, you gave the example of desktop video games, in that case who is representing the server side? Hard disk memory? Might be a dumb question :|
Possible example of 2 Tier: A simple static website, for example I had a school project in which I built a website that listed my favorite recipes along with pictures. It was very lightweight and the data was not heavy. Possible example of 3 Tier: An application like Redfin/Zillow, on which we request listings for homes in a certain area based on certain requirements. Thin client: Instagram perhaps, all the processing is on the server side and I am mostly browsing/ uploading/commenting via the presentation layer Thick client: Desktop application for Slack perhaps?
@sudocode
2 жыл бұрын
Good examples but think again for example of tier 2 and think if tier 1 is possible?
@safakhan8177
2 жыл бұрын
@@sudocode Interesting, Tier 1 seems to be a situation where the server is acting as the client?
Thick client architecture is chosen over thin client in real cases-> simple link generator websites like tiny url as user dosen't do any computation Pros are that user don't have to do much and cons are that delivery time can be more due to high computations 2nd scenario: in games thin client architecture is chosen as user has to constantly think and give inputs Pros are that less memory required at server side and cons are that waiting time depends on user bandwidth Yes server can behave as clients when they fetch for some data from another machine/server
Maja aa gaya
Medam object oriented analysis & design .. uml diagrams , use case etc yeh sab kya system analysis phase me hota hai .. kya system alalyst yeh sab kam karta .. hai .
Nice Content sister
@sudocode
3 жыл бұрын
Thank you 🙂
please enable captions for better idea for student thank you.
As per your def, if data and logic resides on client, then it's thick client. If that's the case, what's the need for the server? Can you explain with real world example?
@deepakSharma-db6fj
2 жыл бұрын
Server can be used just for storing the data...example- a photoshop app
SudoCudo can you make a video on WebSocket please?
Is this series complete
Example of thick client :Quicken. Example of thin client: MyChart (EMR). Correct?
when you have a lot of logic going on you better do it on server theb you should go with the thin client otherwise you should stick to the thick client. when you have a lot requests and traffic going on your system then you would go with client loadbalancer logicserver cache databse other with stick to the client logicserver aproach is good
E commerce site is thin Client. Why so? I think Amazon is an N-tier right?
Hi mam. In case of thick clients, the video editing software is a desktop application installed on my machine. I dont need internet to do the editing. In this case there is no server as such. All the software is in client side only
@sudocode
3 жыл бұрын
Hey Ayush, that is true but video editing is provided in some cases online as well, for eg: KZread's video editor or more example of thick client could be an online game.
@ayushbajaj1965
3 жыл бұрын
@@sudocode when you say online game or editor, do you mean the ones accessed through web browser. If that is so, the heavy client side processing that you are referring to is the javascript execution in browser?
@sudocode
3 жыл бұрын
@@ayushbajaj1965 Why don't you join sudocode slack channel here - kzread.info?q=https%3A%2F%2Fjoin.slack.com%2Ft%2Fsudocode-workspace%2Fshared_invite%2Fzt-h5bl54cx-TySBKH7faKBJ0MuCZk5Cow&redir_token=QUFFLUhqbHpEcDFWeW1mWTNrWEV4S1FVTldIbmUzNS1pQXxBQ3Jtc0ttNTAweXR1ZXl5VjBIQVNoT0NCYmFwQmZBU2xPVVBwNklGcUVUREZIRktreFBna3dvN1ZBbENBTW1hcXZlN2JwV3FBZHNjXzZfbWpSVXN4SHJYRGRDNGJtWElYNVZtdERDLVgzSU1HeXpDSDBlLWtZVQ%3D%3D&v=Dg1U-jwVUrg&event=video_description You can get answers and also others can benefit too from discussion. But, short answer to your questions is YES.
@sambhavjain3653
3 жыл бұрын
@@sudocode I am a bit confused when you say online games are an example of thick client? It seems as if in online games the processing happens to be on server side and hence it comes out to be thin client, how can we say online games are an example of thick client? Also the link to join slack is not working would be great if you can share the resolution for this
Please explain with diagrams And make more videos
Is anyone making notes of these lectures, if yes, please do share? I am looking for notes.
🎉
Slack link is no longer active. Please update the new link :)
Thanks for providing such a great content. Please correct me if I wrong anywhere Yes client itself can act as server Example is calculator app and alarm clock app. Which is itself is tier1 and thick. Can client be thick and thin both at the same time (hybrid) What about the calendar app which has static and dynamic information both.. can we say it is hybrid ?
Hi , I wanted to know if system design questions are asked for freshers??
@sudocode
2 жыл бұрын
It depends on company. Mostly not, for freshers DSA is focus.
How to server work
Hmm
Also where are the quiz questions?
@multimediaworld9537
2 жыл бұрын
Did you find them?
Thin: Train Schedules List of landmarks Movie theater features Thick: On-Demand Taxi - Uber Airline ticket sales Yes, thin and thick clients can be found in the same system such as an on-demand app like Uber, where a robust logic engine is needed to connect riders with drivers, but thin clients regarding the name, plate, details of drivers which require no processing.
@user-xb8nz6hw7k
3 ай бұрын
What architecture should I use for an e-commerce website inspired by amazon? three-tier?
Examples: - Thick Client: Counter-strike. - - Pros: Lower visual input lag. - - Cons: Client requires good hardware - and not all do. - Thin Client: Twitch. - - Pros: Accessible to more users. - - Cons: Processing costs incurred by company.
I liked your content , would like to buy a copy of your CSA for my organization , kindly let me know your interest to sell the content
@sudocode
3 жыл бұрын
Hey Sharlie, you can share this video link in your organisation if it suffices.
Keywords: Thin client Thick client N tier architecture
huge and heavy data 0_0
Mam With Due Respect, Just Don't Explain With Showing The Diagrams ... Plz Explain Each And Every Topics With Their Defination I Visit To Your Chanel Or On This Video Just To Dig Out The Information With Their Defination I Hope You Don't Mind Mam...
aare hindi me bol le bhan
Very crisp and clear, thank you for making these videos!!
@sudocode
3 жыл бұрын
Glad you like them!
Thanks
🎉
Thanks