Part 2 of Yogita Sharma System Design Tutorial.
Components are the basic building blocks of system and consist of two types:
- Logical Entities
- Tangible Entities
Logical Entities:
- At the core of logical entities is data, which is stored in databases.
- Users can interact with databases via applications,
- Typical operations are create, read, update, delete (CRUD)
- Applications and databases use communication protocols, which are also logical entities
- Communication protocols such as HTTP, TCP/IP over networks
- The presentation (front-end) application communicates to the server (on a separate machine) via protocols such as HTTP, RPC, APIs
- Some systems, such as logging systems, do not have presentation layer
- All of these logical entities run on computers, often on a machine run by a cloud provider
- Examples of logical entities include:
- Data
- Database
- Application
- Cache
- Message Queues
- Infra
- Communication
Tangible Entities:
- Examples of logical tangible include
- Text, images, videos
- MongoDB, MySQL, Cassandra
- Java, Golang, Python, React
- Redis, MemCache
- Kafka, RabbitMQ
- AWS, Google Cloud Platform, Azure
- APIs, RPCs, Messages
- Cloud providers instantiate tangible entities listed above in order to provide a working environment for businesses to provide services to other businesses or users
- A simple system setup is shown below:
![]() |
Courtesy of vasanthk Gist |
- The Request could come from the user via front-end app on mobile, laptop, etc via browser or dedicated application.
- Physical computers provisioned by cloud providers run the load balancers, web servers, and databases that data and respond to the user.
- The physical and tangible entities in the diagram above as often referred to as "infrastructure".
No comments:
Post a Comment