Friday, January 16, 2026

Things to know for System Design

What is System Design?

System design is the process of defining the architecture, components, and
interfaces of a system to meet specific requirements. Here's a brief breakdown:
  1. Identify Requirements: Determine what the system needs to do.
  2. High-Level Design: Outline the system's major components and their interactions.
  3. Detailed Design: Specify the internal workings of each component.
  4. Implementation: Write the code and integrate the components.
  5. Testing: Verify that the system meets all requirements and functions correctly.
  6. Maintenance: Update and improve the system over time.
Functional vs Non-Functional Requirements

Functional: Basic functionalities that the system should offer
Non-Functional: Quality constraints in application like portability, maintainability,
reliability, security etc.

What are the components of System Design?
  1. Architecture: The overall structure of the system, including how components interact and the flow of data.
  2. Components: The individual parts of the system, such as modules, services, or microservices.
  3. Interfaces: The points of interaction between different components or with external systems.
  4. Data Storage: How and where data is stored, including databases, data warehouses, and data lakes.
  5. APIs (Application Programming Interfaces): Interfaces that allow different components or systems to communicate with each other.
  6. Security: Measures to protect the system and data from unauthorized access and vulnerabilities.
  7. Scalability: The system’s ability to handle increased load and expand as needed.
  8. Performance: Ensuring the system operates efficiently and meets performance requirements.
  9. Fault Tolerance and Reliability: The system’s ability to continue functioning correctly even when parts fail.
System Design Life Cycle | SDLC (Design) 

This is actual and practical way for proceeding to solve any design problem:
  1. Requirements
  2. Estimation and Constraints
  3. HLD
  4. LLD
  5. Data Model Design
  6. API Design
  7. Identify and Resolve Bottlenecks
Structured Analysis and Structured Design

Structured Analysis is a technique used to understand and define the
requirements of a system. It involves creating models that represent the system's
functions, data, and control flow. The primary goal is to convert system
requirements into a blueprint for development.
[Data Flow Diagrams (DFDs), Entity-Relationship Diagrams (ERDs), State-Transition
Diagrams, Process Specifications] .

Structured Design follows Structured Analysis and focuses on creating a
blueprint for constructing the system. It uses the results of the analysis phase to
design the system architecture and components.
[Modularity, Top-Down Design, Structure Charts, Coupling and Cohesion]

Please see other posts for system design key concepts.

No comments:

Post a Comment

Proxies in System Design

In modern system design, proxy servers play a crucial role in improving performance, enhancing security, and ensuring scalability. A proxy a...