Systems design

Systems design interfaces, and data for an electronic control system to satisfy specified requirements. Systems design could be seen as the application of systems theory to product development. There is some overlap with the disciplines of systems analysis, systems architecture and systems engineering.

Overview
If the broader topic of product development "blends the perspective of marketing, design, and manufacturing into a single approach to product development," then design is the act of taking the marketing information and creating the design of the product to be manufactured. Systems design is therefore the process of defining and developing systems to satisfy specified requirements of the user.

The basic study of system design is the understanding of component parts and their subsequent interaction with one another.

Physical design
The physical design relates to the actual input and output processes of the system. This is explained in terms of how data is input into a system, how it is verified/authenticated, how it is processed, and how it is displayed. In physical design, the following requirements about the system are decided.
 * 1) Input requirement,
 * 2) Output requirements,
 * 3) Storage requirements,
 * 4) Processing requirements,
 * 5) System control and backup or recovery.

Put another way, the physical portion of system design can generally be broken down into three sub-tasks:
 * 1) User Interface Design
 * 2) Data Design
 * 3) Process Design

Web System design
Online websites, such as Google, Twitter, Facebook, Amazon and Netflix are used by millions of users worldwide. A scalable, highly available system must be designed to accommodate an increasing number of users. Here are the things to consider in designing the system:
 * 1) Functional and non functional requirements
 * 2) Capacity estimation
 * 3) Database to use, Relational or NoSQL
 * 4) Vertical scaling, Horizontal scaling, Shard
 * 5) Load Balancing
 * 6) Primary-secondary Replication
 * 7) Cache and CDN
 * 8) Stateless and Stateful servers
 * 9) Datacenter georouting
 * 10) Message Queue, Publish-Subscribe Architecture
 * 11) Performance Metrics Monitoring and Logging
 * 12) Build, test, configure deploy automation
 * 13) Finding single point of failure
 * 14) API Rate Limiting
 * 15) Service Level Agreement