System Design and Architecture for Product Managers : Tech Every Product Manager Must Know !

The Swag Wala PM
20 Oct 202316:41

Summary

TLDRThis video script delves into the fundamentals of system design and architecture, particularly for Product Management Systems (PMS). It elucidates the three-tier architecture: the presentation layer (UI), the application layer (business logic), and the data layer (database). The script emphasizes the importance of 'separation of concerns,' ensuring that changes in one layer do not affect the others. It also covers scaling strategies, including the use of load balancers and stateless servers, and the critical role of databases and CDNs in maintaining user state and reducing latency. The discussion is aimed at enhancing product managers' technical acumen, equipping them with the knowledge to ask insightful questions and make informed decisions in tech-related discussions.

Takeaways

  • 😀 Understanding system design and architecture is crucial for product managers (PMs) to build technical skills and set the right expectations with engineering teams.
  • 🏛️ The three-tier architecture in software products consists of the presentation layer (UI), the application layer (business logic), and the data layer (database).
  • 🌐 The presentation layer includes HTML, CSS, JavaScript, and jQuery, which are the front-end technologies that users interact with directly.
  • 💡 The application layer is the backend where business logic resides, such as the criteria for user sign-up processes.
  • 🔗 APIs (Application Programming Interfaces) enable communication between the presentation layer and the application layer.
  • 🗄️ The data layer is where all user information and app data are stored, typically in databases.
  • 🤝 The concept of 'separation of concerns' ensures that changes in one layer (e.g., business logic) do not affect the other layers (e.g., UI or database).
  • 🌟 To scale a system, PMs must consider client-side applications, web servers, and databases, and how they handle increased loads.
  • 🔄 Load balancers distribute user requests across multiple servers to prevent any single server from becoming overwhelmed, a key aspect of scaling.
  • 🌐 CDNs (Content Delivery Networks) reduce latency by caching content in multiple geographically distributed servers, improving the user experience.
  • 💾 Databases maintain the state of user interactions, ensuring that information like user sign-ups is consistent across different servers and sessions.
  • 🔒 The importance of being stateless in web servers is emphasized, with the database and sometimes browser cookies being used to maintain user state.

Q & A

  • What are the three main layers of a software product?

    -The three main layers of a software product are the presentation layer, the application layer, and the data layer. The presentation layer includes UI elements like HTML, CSS, JavaScript, and jQuery. The application layer is the backend where business logic resides. The data layer is where all the information captured by the application is stored in a database.

  • How does the presentation layer communicate with the application layer?

    -The presentation layer communicates with the application layer via APIs (Application Programming Interfaces). APIs act as a bridge, allowing the front-end to request data or actions from the back-end.

  • What is the significance of the concept of separation of concerns in system design?

    -Separation of concerns is a design principle that separates a computer program into distinct sections. It ensures that changes in one layer, such as the business logic, do not affect the other layers, like the presentation or data layer. This leads to a more maintainable and scalable system.

  • Why is it important for a web server to be stateless?

    -Being stateless means that the server does not store any information about the user's state or data. This is important for scalability and reliability. It ensures that the server can handle requests without relying on stored state information, which can be maintained in a database or through cookies.

  • What is a load balancer and how does it help in scaling applications?

    -A load balancer is a system that distributes network traffic across multiple servers to ensure no single server gets overwhelmed. It helps in scaling applications by efficiently routing user requests to different servers, thus managing the load and improving the responsiveness of the application.

  • How does a CDN (Content Delivery Network) contribute to the performance of a web application?

    -A CDN is a network of geographically distributed servers that store copies of data, which allows for faster delivery of content to users. It reduces latency by serving data from the server closest to the user, thus improving the performance and user experience of the web application.

  • What is the role of a database in maintaining the state of a user in a web application?

    -The database maintains the state of a user by storing all the necessary information about the user, such as their sign-up details and preferences. This state information is crucial for personalization and ensuring that the user experience remains consistent across different interactions with the application.

  • How does sharding help in managing large databases?

    -Sharding is the process of breaking down a large database into smaller, more manageable sub-databases or shards. This helps in managing large databases by distributing the data and the load across multiple servers, which improves the performance and scalability of the database system.

  • What is an in-memory data store and why is it used?

    -An in-memory data store, such as Redis, is a data structure store that keeps data in the RAM for fast access. It is used to improve the performance of applications by allowing rapid data retrieval and manipulation, which is critical for tasks that require high-speed data access.

  • How does caching with Redis improve the response time of a web server?

    -Caching with Redis improves the response time of a web server by storing frequently accessed data in the RAM. When a request is made, the server can retrieve the data from the cache (if available) instead of querying the database, which is a slower operation. This results in faster response times for the user.

  • What is the full stack in the context of web applications?

    -The full stack in web applications refers to the complete set of technologies and components that are used to build and run a web application. It typically includes the client-side (presentation layer), the server-side (application layer), the database (data layer), and additional components like load balancers, CDNs, and in-memory data stores like Redis.

Outlines

00:00

💻 Basics of System Design and Architecture

The paragraph introduces the fundamental concepts of system design and architecture, particularly for Product Management Systems (PMS). It emphasizes the importance of technical skills for non-engineering professionals, highlighting the three-tier architecture of software products: the presentation layer (UI with HTML, CSS, JavaScript, etc.), the application layer (backend business logic), and the data layer (database storage). The concept of separation of concerns is discussed, explaining how changes in one layer should not affect the others, promoting modularity and maintainability in system design.

05:01

🌐 Scaling Systems with Load Balancers and State Management

This section delves into the challenges and solutions associated with scaling systems, such as handling an increase from 10,000 to one lakh users. It introduces load balancers, which distribute user requests across multiple servers to prevent any single server from becoming overwhelmed. The importance of state management is discussed, explaining how user states are maintained in databases to ensure consistency across different servers. The concept of stateless servers is introduced, with databases and cookies mentioned as methods for state storage, emphasizing the database as the single source of truth.

10:01

🔥 Handling Failures and Data Integrity with CDNs and Sharding

The paragraph addresses the issue of data center failures and how systems can maintain data integrity and availability. It introduces the concept of database clustering and Content Delivery Networks (CDNs), which shard data across multiple databases to prevent data loss and improve access speeds. The use of CDNs is explained as a way to reduce latency by geographically distributing servers, ensuring faster content delivery to users. Additionally, the paragraph touches on in-memory data stores like Redis, which serve as fast caches for retrieving information.

15:05

🚀 Full Stack Overview and PM's Technical Understanding

The final paragraph provides a comprehensive overview of the full stack, from the client-side application to the web server, CDN, and database, illustrating how a message sent on WhatsApp travels through this stack. It emphasizes the importance of product managers having a solid understanding of these technical concepts to effectively communicate with technical teams. The paragraph concludes by suggesting that while these concepts are essential for a PM's knowledge base, they may not directly impact day-to-day operations but are crucial for asking the right questions in a technical context.

Mindmap

Keywords

💡System Design

System design refers to the process of planning and compounding a set of components to achieve a particular functionality in a computer program or system. In the context of the video, system design is crucial for product managers to understand, as it involves creating a blueprint for how different parts of a software system will interact. The video emphasizes the importance of system design for PMs to build technical skills and set the technical bar for product development.

💡Architecture

Architecture in software development denotes the structure or blueprint of a system, including its components, their relationships, and the principles guiding their design and evolution. The video discusses the three-tier architecture, which is a common pattern used in system design, consisting of the presentation layer, application layer, and data layer.

💡Three-Tier Architecture

Three-tier architecture is a design pattern where the system is divided into three logical layers: the presentation layer, the application layer, and the data layer. This separation allows for a clean division of concerns, making the system easier to manage, scale, and maintain. The video explains that each layer has a distinct role, with the presentation layer handling user interface, the application layer processing business logic, and the data layer managing data storage.

💡Presentation Layer

The presentation layer is the topmost layer of the three-tier architecture and is responsible for the user interface. It includes technologies like HTML, CSS, JavaScript, and jQuery that define how users interact with the application. In the video, the presentation layer is described as the first point of contact for users, where the UI of an app resides.

💡Application Layer

The application layer, also known as the middle layer, is where the business logic of the system is processed. It acts as an intermediary between the presentation layer and the data layer, handling tasks such as user authentication, data processing, and business rules. The video uses the example of a sign-up process on an e-commerce platform to illustrate the role of the application layer.

💡Data Layer

The data layer is the bottom layer of the three-tier architecture and is responsible for data storage and retrieval. It interacts with databases and ensures that the information captured by the application is stored and managed effectively. The video emphasizes that the data layer is crucial for maintaining the state of user data across different interactions with the application.

💡APIs

APIs, or Application Programming Interfaces, are sets of routines, protocols, and tools for building software applications. They allow different software components to communicate with each other. In the video, APIs are mentioned as the means by which the presentation layer communicates with the application layer, facilitating the exchange of data and commands between the user interface and the business logic.

💡Separation of Concerns

Separation of concerns is a design principle that involves separating a computer program into distinct sections, each addressing a separate concern. This principle is crucial for maintaining a system's modularity and making it easier to understand, develop, and test. The video explains that changes in one layer, such as the business logic, should not necessitate changes in other layers, like the presentation or data layer.

💡Scalability

Scalability refers to a system's ability to handle growth, either in terms of the number of users or the amount of data being processed. The video discusses the importance of scalability in system design, especially when anticipating an increase in user traffic. It mentions the use of multiple servers and load balancers to distribute the load and ensure the system can handle a growing number of requests.

💡Load Balancer

A load balancer is a networking component that distributes network or application traffic across multiple servers. It is used to ensure no single server bears too much load, which can lead to decreased performance. In the video, the load balancer is described as a critical component in a scalable system, directing user requests to different servers to prevent any single server from becoming overwhelmed.

💡Stateless

Being stateless in the context of web servers means that the server does not store any information about the user's session or data. Instead, this information is stored in a central database or through other means like cookies. The video explains the importance of statelessness for scalability and maintaining user state across multiple server interactions, with the database serving as the single source of truth for user data.

💡CDN

A Content Delivery Network (CDN) is a system of distributed servers that deliver web content to users based on their geographic location, so the content is served from the nearest server. This reduces latency and improves load times for users. The video discusses the use of CDNs to enhance the performance of web applications by caching content closer to the user and distributing the load across multiple servers.

💡Redis

Redis is an in-memory data structure store used as a database, cache, and message broker. It allows for fast data retrieval and is often used in high-performance applications. In the video, Redis is mentioned as a tool for caching data in memory, which can be quickly accessed by the application to improve response times and reduce the load on the database.

Highlights

Introduction to system design and architecture basics for Product Management Systems (PMS).

Importance of technical skills for non-engineering backgrounds in product management.

Explanation of the three-tier architecture in software products: presentation, application, and data layers.

The role of HTML, CSS, JavaScript, and jQuery in the presentation layer.

The application layer as the backend where business logic resides.

Communication between presentation and application layers via APIs.

The data layer's function in storing app information and capturing user data.

Concept of separation of concerns in system design to maintain modularity.

How changes in one layer should not affect the others due to separation of concerns.

The necessity of scaling systems and the components involved: client side, web server, and database.

Use of load balancers to distribute user requests across multiple servers.

The importance of maintaining state and how databases serve this function.

The concept of being stateless in web servers and stateful in databases.

Handling user state across multiple servers through database and cookies.

Strategies for data redundancy and disaster recovery with database clusters and CDNs.

The role of CDNs in reducing latency and improving content delivery speed.

Use of in-memory data stores like Redis for fast data retrieval.

The full stack architecture from client to database and the importance for product managers to understand it.

Transcripts

play00:00

now we will talk a little bit about the

play00:02

basics of something called system design

play00:04

and architecture for PMS let's talk

play00:06

about the basics of system design and

play00:09

architecture for PMS now for all of us

play00:11

who come from product management and

play00:13

non-engineering background it is

play00:14

important to understand to build our

play00:16

technical skills sometimes knowing the

play00:19

technical bar for PM starts and it is

play00:21

the easiest part okay so there are three

play00:24

is there is a three tier architecture in

play00:26

a software product consists of number

play00:28

one is called presentation layer second

play00:31

is called application layer third is

play00:32

called the data layer presentation layer

play00:35

is typically the UI layer what I mean by

play00:38

UI is HTML CSS JavaScript jQuery they

play00:43

all come in the presentation layer the

play00:46

first layer the any UI that you see on

play00:48

the app is called as the presentation

play00:51

layer second is called the application

play00:54

layer application layer is the backend

play00:56

where the business resides now the back

play00:59

end where it resides the presentation

play01:01

layer can communicate to the application

play01:03

layer via apis and we'll talk about what

play01:05

an API is right and the third layer is

play01:08

the data layer where all the information

play01:11

of a particular app or or whatever

play01:13

information that you capture that gets

play01:15

stored in the database now is this clear

play01:18

there are three types of layers in any

play01:20

system the first layer is called the

play01:21

presentation layer the UI layer where

play01:23

HTML CSS JavaScript jQuery they all

play01:28

resides they it is separate it's the

play01:30

first layer the second layer is called

play01:31

the application layer which is basically

play01:33

where the business logic resides and

play01:36

there any logic like for example you are

play01:38

typically signing up on flip cart what

play01:40

are the different criteria for somebody

play01:42

to sign up to give email to give phone

play01:44

number Etc all of those logic resides in

play01:47

the application layer and the last layer

play01:49

is the database layer where somebody who

play01:51

has signed up the information of all of

play01:54

that particular user gets stored in the

play01:56

database now these three layers are

play02:00

there is a concept which is called

play02:02

separation of concerns it's a design

play02:05

principle for separating a computer

play02:06

program into distinct sections like

play02:09

sections separation of concerns for

play02:12

example let's assume like bus logic

play02:16

change so it doesn't mean that the

play02:18

presentation layer will also change for

play02:20

example if you go to Flipkart as a

play02:21

website the presentation layer shows the

play02:23

signup form right now in the application

play02:26

layer you change the logic and say that

play02:29

now I don't require email ID and it is

play02:32

optional if you change the logic in the

play02:35

application layer it should not affect

play02:38

the presentation layer nor it should

play02:39

affect the data layer this concept is

play02:42

called separations of concerns like for

play02:45

example changing the user interface

play02:47

should not change the business logic and

play02:49

vice versa to separation of concerns

play02:52

think of it as three different types of

play02:54

systems let me just quickly share my

play02:56

screen and tell you what I'm talking

play02:58

about so first is presentation layer UI

play03:02

layer second is application layer

play03:05

business logic third is data layer data

play03:08

to be captured now if I make any change

play03:13

change here it should not change the

play03:16

logic logic remains same logic remains

play03:19

same if I make any change

play03:22

here logic remains same logic remains

play03:27

same so by changing the logic in any of

play03:31

the three layers right it should not

play03:33

affect the other two layers that is

play03:35

something that is called as separation

play03:38

of concerns separation of concerns

play03:41

basically means any change in any of the

play03:45

three layers does not affect the

play03:47

remaining

play03:48

layers amazing amazing now next

play03:54

step UI layer application layer data

play03:58

layer the next next step is to scale

play04:01

right in order to scale you need two

play04:04

three things one the client side second

play04:08

client basically means the app that

play04:09

you're using second the web server and

play04:12

simultaneously the data database like

play04:14

for

play04:15

example user 1,000 say we scale to

play04:18

10,000 so it should not happen that when

play04:21

people are hitting your client or when

play04:24

people are using your app the web web

play04:26

server the web on which the application

play04:28

logic resides it should get overwhelmed

play04:31

absolutely so what you typically do is

play04:34

you create a list of servers the logic

play04:37

is that the your all of your

play04:39

presentation layer resides on the

play04:40

application that you're using like

play04:42

WhatsApp that you're using right now

play04:44

anybody who sends a message on WhatsApp

play04:46

it goes to the web server right and we

play04:48

have created a server logic any message

play04:52

that should go on WhatsApp from one

play04:53

person it should eventually go to the

play04:54

web server and eventually it should

play04:56

reach

play04:57

towards the other client Cent right now

play05:00

but what happens if tomorrow you scale

play05:02

from 10,000 users to one lakh users

play05:06

right there in that case you typically

play05:09

create a list of servers list of

play05:11

multiple servers and these servers are

play05:14

typically routed to different servers

play05:16

through this concept called a load

play05:18

balancer right like for example I'll

play05:20

quickly share my screen again now here

play05:23

what will happen is your web server is

play05:25

your backend number of users 10 if we

play05:29

scale the number of users to 10 million

play05:32

we will not need just one web server we

play05:34

will need web server one web server two

play05:39

web server three and what will happen is

play05:42

here we there will come a load balancer

play05:45

load balancer will automatically send 5

play05:48

lakh ,000 users to one server 40,000

play05:52

users to another server 10,000 users to

play05:55

another

play05:56

server and this is what a load balance

play05:59

answer does so in the case when you have

play06:02

multiple people on the servers you

play06:05

typically need something called a loads

play06:07

load balancer to direct traffic direct

play06:10

traffic and and it will handle a

play06:12

fraction multiple user multiple servers

play06:14

will have multiple types of loads right

play06:17

so now you have a cluster of web servers

play06:19

through and applic application server is

play06:21

basically the web server only but each

play06:23

request that comes from a user may be

play06:25

routed to a different server right now

play06:28

what will happen now the question is

play06:30

that if different requests are routing

play06:33

to different servers how will a server

play06:35

like for example server one server one

play06:38

got a request that Shan is a user now

play06:40

next time Shan sends a request the

play06:42

request goes to server two how will

play06:44

server two know that s Shan is already a

play06:47

user give me a sense give me a yes or no

play06:50

how will server two know that Shan has

play06:53

sent already a request and it is already

play06:55

on server one so that think there are

play06:58

100 requests that are going Shan

play07:00

initially sent a request which went to

play07:02

server one and server one got it

play07:03

validated now the second part that next

play07:07

time Shan sends a request it goes to

play07:09

server two how will server two know that

play07:11

Shan has already sent a request to

play07:13

server one so in this case what you do

play07:16

is your database maintains the state do

play07:20

you understand what I mean by that so

play07:22

there are three layers first is

play07:23

application layer second is the server

play07:26

layer third is the DB layer yes so

play07:29

server two will a absolutely absolutely

play07:32

servers can talk to each other or there

play07:34

can be a possibility that your state of

play07:38

signup is maintained in the DB so even

play07:42

if the server two does not know it

play07:44

automatically takes information from the

play07:45

DB and understands that Shan is already

play07:49

a user for this particular application

play07:51

for flip cart right and so what do you

play07:54

learn from this you learn that the state

play07:57

of a particular user can only be

play08:00

maintained in a DB yes absolutely

play08:03

correct so what is so again I'm

play08:06

repeating you start from let's assume

play08:10

you were a user for Flipkart you signed

play08:12

up a request server one recognized that

play08:15

you have signed up next time when you

play08:17

sign up it goes to server two server two

play08:19

does not know but server two knows that

play08:21

your state that you are already a signed

play08:23

up user already resides in the DB it

play08:25

will go to the DB and bring information

play08:28

from the DB and automatically can

play08:30

showcase it to the client and you will

play08:31

be signed up The Importance of Being

play08:33

stateless State basically means ensuring

play08:37

that the state that the value prop or

play08:39

the data is already covered The

play08:41

Importance of Being stateless primarily

play08:43

refers to the server side of things the

play08:46

database is an appropriate state where

play08:49

you can maintain the the database is the

play08:50

appropriate place to maintain the state

play08:53

and most holistic statements uh holistic

play08:56

systems are stateful otherwise you would

play08:58

not be able to to fill your shopping

play08:59

cart at Amazon because at every page

play09:01

click it will forget who you are so the

play09:04

key to being stateless in the web server

play09:07

which is serving your apis two places

play09:09

are there where you can maintain the

play09:11

state maintain the state the first place

play09:14

is called the database so that you are

play09:16

maintaining all your status States in a

play09:19

particular database the first part is

play09:21

that in order to maintain the state the

play09:23

information is located in the server the

play09:26

second place where you can maintain a

play09:28

state is through browser via cookies lot

play09:31

of times you see that when you sign up

play09:32

in a in Chrome browser automatically the

play09:35

URLs are already published because your

play09:37

information is getting stored in a

play09:40

cookie it is important to remember that

play09:43

cookies are not the single source of

play09:45

Truth cookies are user dependent so the

play09:48

best way to store the state is in a DB

play09:51

which is a single source of Truth in

play09:54

order to maintain the state that's why

play09:56

all of these companies why are why do

play09:57

these companies like flipcart Amazon

play09:59

want you to sign up every time because

play10:01

they want to maintain your state in a

play10:03

particular DB they don't want guest

play10:05

users ideally any company like Flipkart

play10:08

Amazon do not want guest users they want

play10:12

to maintain your state in a

play10:14

DB

play10:16

awesome awesome now another thing that

play10:19

you want to understand is you can handle

play10:21

a bunch of request but what if your data

play10:23

center catches

play10:25

fire what does

play10:27

happen in case in that case what do you

play10:31

do what if your you you sent a request

play10:35

your your states are maintained in a DB

play10:38

but what if your data center catches

play10:39

fire what will happen

play10:41

then yes absolutely so what you

play10:44

typically do is you create a cluster of

play10:48

databases right and in order to maintain

play10:50

that cluster of databases you also use

play10:53

something called as a CDN or a Content

play10:56

delivery Network which basically means

play10:58

that your information is sharded into

play11:01

multiple databases and a CDN is a

play11:03

cluster of servers which maintains

play11:05

certain certain little little

play11:06

information so you want to what if and

play11:09

that is something that you do in a

play11:11

process which is typically called as

play11:12

sharding which is which is you break

play11:15

down the current database also into sub

play11:17

databases and the sub databases maintain

play11:20

a replica of information which is

play11:22

currently needed absolutely Absolut

play11:24

absolutely is this clear to you guys

play11:27

that what if your data center catches

play11:29

where in that case you have created sub

play11:32

DBS which are called DB shards in which

play11:34

your information is fundamentally

play11:36

retained another thing that you want to

play11:38

understand is okay now your database and

play11:41

everything is working fine for example

play11:43

if your DB is located in Oregon in us

play11:47

and you are putting from Mumbai it will

play11:49

take a lot of time for the request to

play11:51

get covered the request to get covered

play11:54

so in order to for us to make the

play11:57

request basically a request from the

play11:59

Flipkart application to actually the

play12:02

user if in order to make it very very

play12:04

simple you use something called as a CDN

play12:07

a Content delivery Network which

play12:09

basically means that your current server

play12:12

is not exactly a single server it is a

play12:15

list of multiple servers one located in

play12:17

Mumbai one located in Oregon one located

play12:20

in uh Chennai one located in Delhi right

play12:23

so that from where the user is sending a

play12:26

request the information can be brought

play12:27

very very fast

play12:29

and this is done by CDN CDN are of

play12:31

multiple times Amazon has its own CDN

play12:34

Tata has its own CDN multiple so CDN is

play12:37

a cluster of servers cluster of network

play12:40

servers which minimize the latency of a

play12:43

user from where the user is actually

play12:45

sending a

play12:46

request the next thing that you have to

play12:48

understand is a CDN is a system of

play12:51

geographically located servers which

play12:54

provide fast and Fast Delivery of

play12:57

Internet content does does

play13:00

that what is a CDN give me a yes or no

play13:03

guys if everybody a CDN is a network of

play13:06

geographically located distributed

play13:08

servers that work to together to give

play13:10

you the delivery of the fast content

play13:14

right what is the CDN besides the CDN we

play13:17

also retain information in the cach a

play13:21

cach a is in in memory data what I mean

play13:24

by inmemory data is that like there is a

play13:28

ram there's a Rome right in a typical

play13:30

computer there's Random Access Memory

play13:32

there's readon memory RAM is something

play13:35

which is in which which is in memory

play13:36

which is stored on the computer and they

play13:39

it is very less it's very very expensive

play13:41

and it is where the maximum the most

play13:44

important tasks are done by the computer

play13:46

like lot of times when you take a Mac

play13:48

you say 8 GB Ram is Sir 256 GB R in that

play13:52

case there is another structure an open

play13:55

source inmemory data store which is

play13:56

called redis on which all the

play13:58

information is actually stored and

play14:00

information can be retrieved first lot

play14:02

of times you hear this word called redis

play14:04

cache redis is again it's a inmemory

play14:07

data store which is used in order to

play14:10

retrieve information from the from from

play14:14

the ram of the particular web server

play14:16

that you're looking at think of it like

play14:17

this I will again create an architecture

play14:20

client on top client sends a request to

play14:24

web server web server CDN it will go it

play14:28

the request go to the nearest CDN just

play14:33

between these two there is redis Major

play14:36

important information comes from redis

play14:39

now think of it like this the client

play14:42

sent a request it went to the redis

play14:44

cache if the redis cash has the request

play14:46

the information will go from there only

play14:48

or else it will go to the web server the

play14:49

web server will automatically choose the

play14:52

load balancer or the low distributor

play14:54

will automatically figure out which is

play14:55

the nearest web server and the

play14:57

information from that will be

play14:58

distributed back to the client and you

play15:00

see a WhatsApp

play15:04

message so think of it I will repeat

play15:07

again you are using Whatsapp WhatsApp

play15:10

message

play15:13

message red

play15:15

cach whether that information is already

play15:18

stored in the cach if it's in the cach

play15:20

the information will be retrieved from

play15:22

redis it will go to the web server web

play15:25

server automatically the load balancer

play15:27

will automatically figure out which is

play15:28

the closest web server on which the

play15:30

logic can be put across it will then go

play15:33

to the CDN the CDN will talk to the

play15:36

DB and your message which you

play15:40

sent will go to Uno will go to the other

play15:44

partner the other partner the full

play15:48

stack client web server CDN and database

play15:53

this is typically called as a full

play15:57

stack amazing amazing amazing now what

play16:01

you have to

play16:03

understand these are like primarily

play16:06

relevant for you to understand as a PM

play16:08

this will never come in real

play16:12

life this is all to understand basically

play16:15

what a PM does right now but based on

play16:18

this understanding these are some of the

play16:20

questions that a PM should ask when

play16:22

they're interacting with

play16:27

tech

play16:32

[Music]

Rate This

5.0 / 5 (0 votes)

関連タグ
System DesignArchitectureProduct ManagementSoftware LayersSeparation of ConcernsScalabilityLoad BalancerDatabase ClusterCDNRedis Cache
英語で要約が必要ですか?