- Logical Entities: Essential components like databases, application layers, and communication protocols define a system's structure.
- Tangible Technologies: Tools such as React, MySQL, AWS, and APIs bring the logical components to life.
- User Interaction: The presentation layer and application layer enable user-facing systems to function efficiently.
- Cloud Infrastructure: Platforms like AWS and Azure host the system's components and ensure smooth operation.
Understanding System Design: The Key Components You Must Know
Published on: 27 November 2025
Last updated on: 30 June 2026

A Comprehensive Overview
System design forms the backbone of software architecture, enabling scalable, reliable, and efficient systems.
In this post, we’ll explore the components of system design, categorized into logical entities and tangible entities.
These components act as the foundational building blocks of any system. Let’s dive deeper.
Logical Entities in System Design
Logical entities represent the conceptual parts of a system that define its structure and operation. Here are the main logical components:
1. Databases
Data is at the heart of any system. Databases allow us to store and retrieve data efficiently. Common operations include reading, writing, fetching, and storing information.
2. Application Layer
This layer consists of services or applications, such as mobile apps, desktop apps, or websites. Applications provide users with access to the system. These services communicate with databases to perform required operations.
3. Communication Protocols
Communication between machines and applications happens through protocols like HTTP and TCP. At the software level, APIs and RPCs facilitate interaction between services.
4. Presentation Layer
Systems with user-facing interfaces include a presentation layer, such as mobile apps, websites, or desktop apps. However, some systems, like log collectors, may not have this layer.
5. Infrastructure
All these components run on infrastructure provided by cloud platforms like AWS, Google Cloud Platform (GCP), or Microsoft Azure. These providers offer hardware instances where system components operate.
Tangible Entities in System Design
Tangible entities are the concrete technologies and tools used to build the system. Let’s explore them:
1. Databases
Popular database options include:
-
- Relational Databases: MySQL, PostgreSQL
- NoSQL Databases: MongoDB, Cassandra
- In-Memory Stores: Redis
2. Application Communication
Communication happens via:
-
- APIs: RESTful or GraphQL endpoints
- RPCs: Remote Procedure Calls
3. Presentation Layer Technologies
For building user interfaces:
-
- Web Applications: React, Angular, or Vue.js
- Mobile Apps: Native (iOS/Android) or hybrid frameworks like Flutter
4. Security Mechanisms
Protocols and tools ensure secure data transmission and storage, protecting against cyberattacks.
5. Infrastructure Providers
These include cloud computing platforms such as AWS, GCP, and Azure, offering compute power, storage, and networking.
Putting It All Together
The components of a system interact as follows:
- The presentation layer (e.g., a mobile app or website) allows users to interact with the system.
- This layer communicates with the application layer, which processes data.
- Applications interact with databases for storing and retrieving data.
- All components operate on infrastructure (hardware instances) and communicate via communication protocols (network).
An Analogy: System Design as a Building
Just like a building has walls, floors, and electrical systems, a software system is composed of:
- Applications: Representing the functional parts
- Databases: Storing essential information
- Caches: Enhancing performance
- Load Balancers: Distributing workloads
- Client Interfaces: Enabling user interaction
- Network Requests: Facilitating communication
- Security Layers: Protecting against threats
- Infrastructure: The physical or cloud-hosted backbone
What's Next?
In the next article, we’ll delve deeper into client-server architecture, the cornerstone of modern systems. Stay tuned as we unravel the intricacies of system design, one component at a time!
Feel free to share your thoughts or mention any components we missed in the comments below.
Frequently Asked Questions
The key components of system design include: Databases: For storing and retrieving data. Applications: The logic layer where processes run. Communication Protocols: Ensure interaction between components (e.g., HTTP, TCP). Presentation Layer: The interface for users (web, mobile, or desktop apps). Infrastructure: Physical or cloud-based servers hosting the system.
